
Instalación Rancher Kubernetes Engine v2 (RKE2) All In One
Introducción
La instalación de Rancher Kubernetes Engine v2 (RKE2) en un entorno All-In-One es una configuración diseñada para simplificar la implementación de Kubernetes en un único servidor, integrando tanto los componentes de administración como los nodos de trabajo en una sola instancia. Esta modalidad es ideal para entornos de laboratorio y pruebas, ya que permite a los usuarios familiarizarse con las funcionalidades de RKE2 sin necesidad de infraestructura compleja o de múltiples servidores.
En este tema, exploraremos paso a paso el proceso de instalación de RKE2 en su configuración All-In-One, incluyendo los requisitos previos, la preparación del entorno, los comandos de instalación y la configuración inicial. Al finalizar esta sección, los participantes habrán implementado un clúster Kubernetes funcional con RKE2, listo para administrar cargas de trabajo y practicar operaciones básicas de administración y despliegue de contenedores en un solo nodo.
Objetivos
Objetivo General:
- Guiar a los participantes en el proceso de instalación y configuración de Rancher Kubernetes Engine v2 (RKE2) en un entorno All-In-One, proporcionando los conocimientos y habilidades necesarios para desplegar un clúster de Kubernetes funcional. Este objetivo busca facilitar la comprensión de los pasos y mejores prácticas involucrados en la implementación de RKE2, preparando a los participantes para gestionar y operar entornos de contenedores de manera eficiente y segura.
Laboratorio: Instalación Rancher Kubernetes Engine 2 - RKE2 (AIO)
En este laboratorio, procederemos a la instalación de RKE2 en un único nodo en modo All in One, lo que significa que el nodo cumplirá tanto la función de control plane como la de worker. Esto permitirá la creación de un clúster Kubernetes simple pero funcional en un solo servidor.
Antes de comenzar
- Contar con el acceso al ambiente de laboratorio y haber realizado la validación de conexión y funcionamiento
Inicio de laboratorio
Asegurarse de estar en el servidor bastion con el usuario student
student@lab-0-bastion:~>
- Establecer una sesión como el usuario student al servidor:
lab-#-aiostudent@lab-0-bastion:~> export LAB=Xstudent@lab-0-bastion:~> ssh student@lab-${LAB}-aio - Cambiar al usuario
rootstudent@lab-0-aio:~> sudo -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+rke2r1./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.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) tls-san: - "$(hostname -f)" resolv-conf: /etc/resolv.conf # Forzar utilizar DNS local node-label: - "cluster=rancher" 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.yamlSignificado del Código de Salida: 0: El comando se ejecutó correctamente sin errores. Diferente de 0: Hubo un error en la ejecución del comando. En este caso, si echo $? muestra 0, significa que yq pudo leer y procesar el archivo config.yaml sin problemas. Si el valor es diferente de 0, indicaría un problema al leer o procesar el archivo, como si no existiera, no se tuviera permisos adecuados, o hubiera un error de sintaxis en el YAML.echo $? # 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.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
Hemos finalizado la instalación de RKE2 en un nodo en modo All in One, la salida de los PODs debería ser similar a la siguiente:
lab-0-bastion:~ # kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system cloud-controller-manager-lab-0-bastion.c.mx-g01.internal 1/1 Running 0 2m51s
kube-system etcd-lab-0-bastion.c.mx-g01.internal 1/1 Running 0 2m32s
kube-system helm-install-rke2-canal-x5xrx 0/1 Completed 0 2m37s
kube-system helm-install-rke2-coredns-4hbvk 0/1 Completed 0 2m37s
kube-system helm-install-rke2-ingress-nginx-n7c7b 0/1 Completed 0 2m37s
kube-system helm-install-rke2-metrics-server-xfcv5 0/1 Completed 0 2m37s
kube-system helm-install-rke2-snapshot-controller-26n28 0/1 Completed 2 2m37s
kube-system helm-install-rke2-snapshot-controller-crd-tqll9 0/1 Completed 0 2m37s
kube-system helm-install-rke2-snapshot-validation-webhook-srnx9 0/1 Completed 0 2m37s
kube-system kube-apiserver-lab-0-bastion.c.mx-g01.internal 1/1 Running 0 2m49s
kube-system kube-controller-manager-lab-0-bastion.c.mx-g01.internal 1/1 Running 0 2m43s
kube-system kube-proxy-lab-0-bastion.c.mx-g01.internal 1/1 Running 0 2m43s
kube-system kube-scheduler-lab-0-bastion.c.mx-g01.internal 1/1 Running 0 2m43s
kube-system rke2-canal-8lnzv 2/2 Running 0 2m29s
kube-system rke2-coredns-rke2-coredns-55bf79979b-zk5rs 1/1 Running 0 2m31s
kube-system rke2-coredns-rke2-coredns-autoscaler-564964dcd5-85qc7 1/1 Running 0 2m31s
kube-system rke2-ingress-nginx-controller-blbdz 1/1 Running 0 90s
kube-system rke2-metrics-server-6cd986844b-9ltqg 1/1 Running 0 113s
kube-system rke2-snapshot-controller-59cc9cd8f4-lnnwq 1/1 Running 0 89s
kube-system rke2-snapshot-validation-webhook-54c5989b65-jjs68 1/1 Running 0 106s
lab-0-bastion:~ #
Laboratorio: Desinstalación Rancher Kubernetes Engine 2 - RKE2
Descripción
En este laboratorio, procederemos a eliminar la instalación de RKE2 en un único nodo en modo All in One. Al ejecutar este procedimiento tendremos el nodo limpio. Es recomendado reiniciar el nodo posterior a este procedimiento.
Objetivos
- Realizar la Des instalación Rancher Kubernetes Engine2 (RKE2) en modo All In One
Antes de comenzar
- Contar con el acceso al ambiente de laboratorio y haber realizado la validación de conexión y funcionamiento
Inicio de laboratorio
- Establecer una sesión como el usuario student al servidor:
lab-#-aioexport LAB=X ssh student@lab-${LAB}-aio - Cambiar al usuario
rootsudo -i - Eliminar la instalación, ejecutando:
rke2-uninstall.sh reboot - Espere a que el nodo reinicie para reutilizarlo o iniciar una instalación de nuevo.
- Establecer una sesión como el usuario student a
lab-#-aioexport LAB=X ssh student@lab-${LAB}-aio - Cambiar al usuario
rootsudo -i - Validar el sistema. Todos los comandos deben fallar al no existir el servicio o los directorios.
systemctl status rke2-server.servicefind /var/lib/rancherfind /etc/rancher - Reiniciar el servidor
Verificar que inicie de forma correcta.
sudo reboot
IMPORTANTE: Asegurarse de volver a instalar este servidor en modo All In One para continuar con las prácticas de laboratorio.
Conclusión
En esta guía de laboratorio, hemos cubierto el proceso completo de instalación y desinstalación de Rancher Kubernetes Engine v2 (RKE2) en un entorno All-In-One. A través de estos pasos, los participantes han adquirido una comprensión sólida de cómo implementar un clúster de Kubernetes funcional en un solo servidor, desde la preparación del entorno y la ejecución de comandos de instalación, hasta la correcta eliminación y limpieza del sistema.
Este conocimiento es fundamental para administradores y profesionales que buscan familiarizarse con la infraestructura de RKE2, permitiéndoles experimentar con configuraciones de laboratorio y comprender mejor las operaciones de instalación y desinstalación en un entorno controlado. Esta práctica proporciona una base sólida para manejar implementaciones más complejas y distribuidas en entornos de producción en el futuro.
La experiencia obtenida a lo largo de esta guía asegura que los participantes estén preparados para enfrentar escenarios reales de gestión de Kubernetes, reforzando sus habilidades y mejorando su eficiencia en la administración de plataformas contenerizadas.