martes, 18 de agosto de 2020

Instalar cluster de Kubernetes con Kubespray en Virtualbox - vol. 1

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...


 
 

 
 
 

No hay comentarios:

Publicar un comentario