Voy a ir directo al grano y obviaré la parte típica de "qué es kubernetes", porque imagino que si has llegado hasta aquí en parte es porque al menos te suena de que va el tema.
Si no es así... puedes empezar por aquí: https://kubernetes.io/docs/home/
Paso 1: Instalación/Configuración de máquinas virtuales
En este caso hemos elegido la opción más factible de realizar en casa como es VirtualBox en tu propio PC.
Vamos a configurar un entorno sencillo de 3 nodos (1 master y 2 workers)
El SO utilizado sería ubuntu server 20.04 sin nada extra instalado.
Una vez instaladas las máquinas, el primer paso para la configuración sería generar (si no lo tenemos ya) una clave ssh en nuestro equipo para la conexión con los nodos, para posteriormente copiarla a cada uno de ellos.
Ahora copiamos esa clave para poder realizar la conexión con los diferentes nodos por ssh.
# ssh-copy-id master@master
# ssh-copy-id master@worker1
# ssh-copy-id master@worker2
El siguiente paso es ir conectado a cada nodo para realizar las tareas de configuración necesarias previas al despliegue.
- Habilitamos ip forwarding
# echo 1 > /proc/sys/net/ipv4/ip_forward
- Paramos y deshabilitamos firewall
# systemctl stop firewalld
# systemctl disable firewalld
- Deshabilitamos SELinux en el caso de tenerlo activo
- Deshabilitamos swap
# swapoff -a
Paso 2: Instalación de Kubespray y despliegue del cluster
Clonamos repositorio:
git clone <https://github.com/kubernetes-sigs/kubespray.git> kubespray
Verificamos release:
git describe --tags
Previo al despliegue del cluster necesitamos realizar la instalación de los requisitos previos. Dentro de la carpeta kubespray que se acaba de crear ejecutamos lo siguiente:
pip3 install -r requirements.txt
Copiamos el directorio de ejemplo para el inventario a otra carpeta para nuestro cluster
cp -rfp inventory/sample inventory/mycluster
Editamos el fichero de inventario para añadir nuestras máquinas
vi inventory/mycluster/inventory.ini
Si no le especificamos el parámetro ansible_user se lanzaría el siguiente comando con root por defecto. En nuestro caso tenemos el usuario master en las 3 máquinas puesto que no lo cambié después de clonarlas... my mistake ;).
Lanzamos un ping con ansible para comprobar que llegamos a las máquinas
# ansible --key-file ~/.ssh/id_rsa -i inventory/mycluster/inventory.ini -m ping all
Una vez comprobado que llegamos y conectamos sin problema a los nodos procedemos a ejecutar el fichero de creación del cluster.
En este capítulo no voy a entrar a profundizar en el "tuning" y simplemente ejecutaremos la creación del cluster por defecto.
# ansible-playbook --flush-cache -b --private-key=~/.ssh/id_rsa \\
-i inventory/mycluster/inventory.ini cluster.yml -K
Al finalizar veríamos algo como lo siguiente
Comprobamos los nodos desde el master
y...






