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