Skuba es una herramienta desarrollada por SUSE y cuyo código se encuentra publicado en su repositorio de Github que nos simplifica el despliegue y la actualización de un cluster de Kubernetes. Esta herramienta se basa en kubeadm para el despliegue y se encuentra programada en Go.
En este post vamos a indicaros como podéis deplegar un cluster de Kubernetes con dos masters y dos workers sobre la distribución openSUSE, se basa en el sistema SUSE CaaSP v4 pero al hacerlo sobre otra distribución no tendremos soporte por lo que será interesante para hacer pruebas y PoC para posteriomente realizar una instalación con soporte.
En primer lugar debemos preparar una plantilla (o los hosts que vayamos a utilizar), para ello necesitaremos proceder con los siguientes pasos.
En primer lugar debemos disponer de una clave privada y su correspondiente clave pública en los nodos para que se puede acceder sin necesidad de password. Además en nuestro caso no vamos a usar el usuario del sistema sino que usaremos uno al que hemos llamado “opensuse” al que le daremos permisos de sudo sin necesidad de password modificando el fichero /etc/sudoers y añadiendo la linea:
|
|
Luego debemos configurar nuestros hosts para que se puedan realizar llamadas vía FQDN, para ello añadimos a /etc/hosts
|
|
Luego deberemos dejar la swap deshabilitada en el arranque por lo que añadiremos el script en /etc/init.d/after.local
|
|
El siguiente paso podemos decidir que queremos hacer, podemos tratar de usar el firewalld propio del sistema o si disponemos de uno externo tan solo podemos deshabilitarlo. En cualquier caso seria suficiente con abrir los puertos 6443, 32000 y 10250 vía firewalld ejecutando los comandos.
|
|
Nota: En caso de tener un firewall externo deshabilitaremos el servicio de firewalld
|
|
Necesitaremos tener un agente de ssh corriendo en la máquina para poder utilizar el software de SUSE por ello añadiremos en $HOME/.bash_profile el siguiente contenido:
|
|
Por último debemos instalar go y skuba para poder proceder con la creación del cluster.
|
|
Ya tenemos todas nuestras máquinas de OpenSUSE preparadas ahora procederemos a crear nuestro cluster (lo habitual suele ser preparar una máquina y crear una plantilla para poder luego crecer mucho más rapido)
Un vez tengamos los nodos que vayamos a utilizar con esta configuración continuaremos con la creación del cluster. Desde “kubemaster01” ejecutamos:
|
|
Y añadimos el primer nodo master del cluster.
|
|
El siguiente paso se añadir el segundo nodo master del cluster.
|
|
Cada vez que queramos añadir un nuevo nodo master al cluster debemos ejecutar lo mismo.
Y ya por último añadimos los workers que necesitemos.
|
|
UPDATE [21-11-2019] - Fix IPv6 en Cilium.
Para hacer funcionar bien la red, por defecto viene habilitado IPv6 lo que genera errores al crear nuevos pod y exponerlos a través de nodePort para solventar esto es necesario editar el pod de cilium.
A continuación explicamos como hacer este paso.
Ejecutar el comando:
|
|
Cambiar la linea 10 y añadir justo detrás de "--disable-ipv4"
|
|
Y añadir justo debajo de "- --disable-ipv4=$(DISABLE_IPV4)"
(linea 46)
|
|