
Instalación RKE2 - Multi Server Mode
Introducción
El Modo Multi-Server de Rancher Kubernetes Engine v2 (RKE2) es una configuración avanzada diseñada para proporcionar alta disponibilidad y resiliencia a los clústeres de Kubernetes. A diferencia de la instalación en modo All-In-One, el despliegue en modo Multi-Server distribuye las funciones del Control Plane y los nodos de trabajo en múltiples servidores, garantizando un entorno más robusto y preparado para producción. Esta modalidad es ideal para organizaciones que necesitan alta disponibilidad y que buscan reducir puntos únicos de fallo, asegurando la continuidad de los servicios.
En este tema, se explorarán los pasos necesarios para instalar y configurar RKE2 en modo Multi-Server, desde la preparación de los nodos hasta la verificación de la instalación y la puesta en marcha del clúster. Los participantes aprenderán cómo distribuir componentes críticos, gestionar la comunicación entre nodos y aplicar prácticas recomendadas para la instalación de un clúster altamente disponible y escalable.
Objetivo
Objetivo General:
- Proporcionar a los participantes los conocimientos y habilidades necesarias para instalar y configurar Rancher Kubernetes Engine v2 (RKE2) en Modo Multi-Server, asegurando un despliegue que ofrezca alta disponibilidad y resistencia ante fallos. Este objetivo busca capacitar a los administradores para gestionar entornos de producción complejos y escalables, optimizando la resiliencia y eficiencia de la infraestructura de Kubernetes en sus organizaciones.
Laboratorio: Instalación Rancher Kubernetes Engine 2 - RKE2 (Multi Server)
En este laboratorio, procederemos a la instalación de RKE2 varios nodos, lo que significa dividiremos los roles entre worker y control plane. Esto permitirá la creación de un clúster Kubernetes con multiples nodos.
Antes de comenzar
- Contar con el acceso al ambiente de laboratorio
- Aunque no es estrictamente necesario para esta práctica, se recomienda haber terminado los laboratorios anteriores de Instalalación del cluster All In One e Instalación de Rancher Manager Server.
Inicio de laboratorio
Instalación de Servidor Control Plane o Master
- Establecer una sesión como el usuario student a
lab-#-masterexport LAB=Xssh student@lab-${LAB}-master - Cambiar al usuario
rootsudo -i - Procederemos a descargar el script de instalación de RKE2. Es recomendado descargarlo por seguridad.
curl -sfL https://get.rke2.io --output install.shchmod +x install.sh - Para este laboratorio, utilizaremos la versión de RKE2:
v1.29.9+rke2r1. Y ejecutaremos el instalador.export INSTALL_RKE2_VERSION=v1.29.9+rke2r1export INSTALL_RKE2_TYPE=server # Este es el valor por defecto./install.sh - Crearemos el directorio de configuración de rke2.
mkdir -p /etc/rancher/rke2 - Crearemos la configuración inicial de rke2. Se mostrará en pantalla y se remplazará el contenido del archivo de configuración
/etc/rancher/rke2/config.yaml. En este archivo se puede definir el token, esto se realizará en un laboratorio posterior. Esta configuración comtempla dedicar el nodo master, para cargas de trabajo de control plane. Y definiremos un token definido por el usuario.TOKEN=$(openssl rand -base64 32)Asegurese de guardar en un lugar seguro y conocido el contenido de la variable TOKEN, será utilizado en las guías siguientes.echo "TOKEN=${TOKEN}"cat << EOF | tee /etc/rancher/rke2/config.yaml write-kubeconfig-mode: "0600" # Es importante proteger este archivo, ya que cotiene las credenciales del administrador del cluster node-name: "$(hostname -f)" token: "${TOKEN}" tls-san: - "$(hostname -f)" node-label: - "cluster=cluster1" node-taint: - "CriticalAddonsOnly=true:NoExecute" EOF - Es recomendable validar el formato del archivo de configuración, para esto instalaremos la herramiento
yq. Y validaremos el archivo creado.zypper install -y yqyq /etc/rancher/rke2/config.yamlecho $? # La salida de este comando deberá ser 0 - Una vez validado el archivo, podemos iniciar y habilitar el servicio. Este proceso puede demorar unos minutos.
systemctl enable rke2-server.service --now - Validar es estado del servicio. Debe estar en ejecución
active (running)systemctl status rke2-server.service - Validar el estado del cluster. Asegurse que el nombre del sistema muestra el FQDN del nodo. Y que la versión sea la requerida por esta laboratorio y que el estado del nodo sea
Ready. Esto puedo demorar unos minutos.export KUBECONFIG=/etc/rancher/rke2/rke2.yamlexport PATH=$PATH:/var/lib/rancher/rke2/binkubectl versionkubectl get nodeskubectl get nodes -L cluster # Para validar que se haya aplicado la etiquda del node definida en la configuración de rke2. - Listar los
podsen ejecución en este cluster. Si existe algúnpoden estado de error, puede consultar sus bitcoras. Espere hasta que todos los pods, estén en estadoRunningoCompleted.kubectl get pods -A - Asegurese de guardar el nombre del servidor Master, ya que será utilizado posteriormente, puede verificarlo con el siguiente comando:
lab-0-master:~ # hostname -f - Cierre la sesión en el servidor Master del usuario
rootcon el comandoexit:lab-0-master:~ # exit - Cierre la sesión en el servidor Master del usuario
studentcon el comandoexit:student@lab-0-master:~> exit
Instalación de Servidor Worker 1 (lab-#-node1)
Asegurarse de estar en el servidor bastion con el usuario student
student@lab-0-bastion:~>
- Establecer una sesión como el usuario student a
lab-#-node1export LAB=Xssh student@lab-${LAB}-node1 - Cambiar al usuario
rootsudo -i - Procederemos a descargar el script de instalación de RKE2. Es recomendado descargarlo por seguridad.
curl -sfL https://get.rke2.io --output install.shchmod +x install.sh - Para este laboratorio, utilizaremos la versión de RKE2:
v1.29.9+rke2r1. Y ejecutaremos el instalador.export INSTALL_RKE2_VERSION=v1.29.9+rke2r1export INSTALL_RKE2_TYPE=agent # Este es el valor por defecto./install.sh - Crearemos el directorio de configuración de rke2.
mkdir -p /etc/rancher/rke2 - Crearemos la configuración inicial de rke2. Se mostrará en pantalla y se remplazará el contenido del archivo de configuración
/etc/rancher/rke2/config.yaml. En este archivo se puede definir el token, esto se realizará en un laboratorio posterior. Esta configuración comtempla dedicar el nodo master, para cargas de trabajo de control plane. Y definiremos un token definido por el usuario.TOKEN='COLOCAR_VALOR_GENERADO_EN_LA_INSTALACION_DEL_MASTER'SERVER_NODE='COLOCAR_FQDN_DE_MASTER_DE_LA_SECCION_ANTERIOR'cat << EOF | tee /etc/rancher/rke2/config.yaml write-kubeconfig-mode: "0600" server: https://${SERVER_NODE}:9345 resolv-conf: /etc/resolv.conf # Forzar utilizar DNS local node-name: "$(hostname -f)" token: "${TOKEN}" node-label: - "cluster=cluster1" EOF - Es recomendable validar el formato del archivo de configuración, para esto instalaremos la herramiento
yq. Y validaremos el archivo creado.zypper install -y yqyq /etc/rancher/rke2/config.yamlecho $? # La salida de este comando deberá ser 0 - Una vez validado el archivo, podemos iniciar y habilitar el servicio. Este proceso puede demorar unos minutos.
systemctl enable rke2-agent.service --now - Validar es estado del servicio. Debe estar en ejecución
active (running)systemctl status rke2-agent.service - Cierre la sesión en el servidor Node1 del usuario
rootcon el comandoexit:lab-0-node1:~ # exit - Cierre la sesión en el servidor Node1 del usuario
studentcon el comandoexit:student@lab-0-node1:~> exit
Repetir los mismos pasos ejecutados en el servidor lab-#-node1 para lab-#-node2.
Asegurarse de estar en el servidor bastion con el usuario student
student@lab-0-bastion:~>
Verificar el estado del cluster y de los servidores que componen el ambiente
- Asegurarse de estar en el servidor
bastioncon el usuariostudentstudent@lab-0-bastion:~> - Establecer una sesión como el usuario student a
lab-#-masterexport LAB=Xssh student@lab-${LAB}-master - Cambiar al usuario
rootsudo -i - Validar el estado del cluster. Asegurse que el nombre del sistema muestra el FQDN de los nodos. Y que la versión sea la requerida por esta laboratorio y que el estado del nodo sea
Ready. Esto puedo demorar unos minutos.export KUBECONFIG=/etc/rancher/rke2/rke2.yamlexport PATH=$PATH:/var/lib/rancher/rke2/binkubectl versionkubectl get nodeskubectl get nodes -L cluster # Para validar que se haya aplicado la etiquda del node definida en la configuración de rke2. - Listar los
podsen ejecución en este cluster. Si existe algúnpoden estado de error, puede consultar sus bitcoras. Espere hasta que todos los pods, estén en estadoRunningoCompleted.kubectl get pods -A