Helm ya es un standart, nos viene bien tener a mano como desplegarlo en nuestro cluster.

Descargmos e instalamos helm en master

wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
tar -xzvf helm-v2.14.3-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
mv linux-amd64/tiller /usr/local/bin/tiller

Una vez instalado los deplegamos en el cluster

kubectl -n kube-system create serviceaccount tiller

kubectl create clusterrolebinding tiller \
  --clusterrole=cluster-admin \
  --serviceaccount=kube-system:tiller

helm init --service-account tiller

Una vez activado helm en el cluster ya podemos desplegar charts pero para sacarle el maximos partido el primer chart deberia ser un aprovisionar de persitencia dinamico que automatize el despliegue de los volumes claims que requieran los charts.

Hay mas de una opcion, en mi blog hay un par de entradas hablando StorageOs GlusterFS NFS, pero hay muchos mas ROCK openEBS … …

Sobre cual es mejor es dificil de saber pues con cada version de kubernetes añaden mejoras las cuales muchos provisonadores de persistencia no se han alineado aun, como por ejemplo la expansion de un pvc en uso por un pod y tambien hay que valorar si capacidad de resturacion o tolerancia a fallos velocidades de escritura replicacion multiescritura de pods y nodos.

En este caso voy a optar por el mas rapido que seria el nfs pues su despliegue es rapido y la resturaciond e su backup es copiar pegar. (aunque por lo demas es el menos recomdable)

Teniendo el servidor NFS en funcionamiento como describo en la entrada:

NFS Dinamic Provisioner Kubernetes

helm install stable/nfs-client-provisioner \
--set nfs.server=192.168.1.50 --set nfs.path=/var/nfsshare \
--set storageClass.defaultClass=true --name nfs

Tambien desplegamos Prometheus y un controlador ingress Nginx

helm install --name prometheus stable/prometheus \
--namespace prometheus \
--set server.service.type=LoadBalancer \
--set server.service.loadBalancerIP="192.168.1.241"
helm install stable/nginx-ingress --name nginx-ingress \
--set controller.publishService.enabled=true

PD: Desde la version 3 de helm ya instala el tiller por lo que no hace falta hacer un role bindin account


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 *