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

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *