Ahora ya tenemos un cluster openshift 4.5 en funcionamiento, tenemos masters y nodos donde podemos deplegas yamls. Sim embargo nos falta aun un par de retoques como la administracion de las ips, el aprovisionamientos dinamico de la persistencia y el manejos de las conexiones entrantes.
Empecemos con las ips
Añadir MetalLB
Lo primero el namespace
oc new-project metallb-system
Enel git tenemos la config del rango de ips que queremos usar en nuestra red
cd okd4.5-install
vi metallb-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.100.240-192.168.100.250
Ahora solo tenemos que deplegar metal LB, crear un secreto y darle privilegios
oc apply -f metallb-configmap.yaml oc apply -f metallb-system.yaml oc adm policy add-scc-to-user privileged -n metallb-system -z speaker kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
Añadir persistencia
Lo primero es poner un label en aquellos nodos donde hemos añadidos discos duros para que alberguen la persistencia del cluster
En los nodos que van contener la persistencia tenemos que añadir un disco duro.
oc login -u admin -p admin https://api.lab.okd.local:6443 --insecure-skip-tls-verify=true oc label nodes okd4-compute-1 storage-node=true oc label nodes okd4-compute-2 storage-node=true oc label nodes okd4-compute-3 storage-node=true
A continuacion clonamos el rook. Usaremos los yamls que traen de ejemplo salvo el cluster.yaml donde especificamos el label que usaremos en nuestros nodos
git clone https://github.com/rook/rook.git
oc create -f rook/cluster/examples/kubernetes/ceph/common.yaml
oc create -f rook/cluster/examples/kubernetes/ceph/operator-openshift.yaml
oc create -f rook/cluster/examples/kubernetes/ceph/crds.yaml
oc create -f cluster.yaml
kubectl create -f rook/cluster/examples/kubernetes/ceph/csi/rbd/storageclass.yaml
kubectl patch storageclass rook-ceph-block -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
Con esto ya tenemos creado el aprovisionamiento de discos duros de forma dinamica y automatica
Istio
Por supuesto no podia faltar istio
wget https://github.com/istio/istio/releases/download/1.8.0/istio-1.8.0-linux-amd64.tar.gz tar -xzvf istio-1.8.0-linux-amd64.tar.gz cd istio-1.8.0 export PATH=$PWD/bin:$PATH oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system istioctl install --set profile=openshift oc -n istio-system expose svc/istio-ingressgateway --port=http2
Acceso Externo
Ahora si queremos acceder desde la red de nuestro home tenemos que usar un servidor dns personalizado y que las dns de nuestro cluster okd.local las resuelva apuntando a la ip del haproxy okd4-services
$ORIGIN okd.local.
$TTL 3H
@ IN SOA okd.local. root.okd.local. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
@ NS serverdns.okd.local.
@ IN A 192.168.1.199
serverdns IN A 192.168.1.199
console-openshift-console.apps.lab.okd.local. IN A 192.168.1.230
oauth-openshift.apps.lab.okd.local. IN A 192.168.1.230
api.lab.okd.local. IN A 192.168.1.230
api-int.lab.okd.local. IN A 192.168.1.230
*.apps.lab.okd.local. IN A 192.168.1.230
0 comentarios