Los contenedores son útiles en muchos proyectos informáticos, ya sea para alojar servicios de software libre, desarrollar programas dentro de entornos aislados o experimentar con paquetes y repositorios divertidos. Pero cuando se ha implementado un ejército de contenedores, administrarlos puede volverse una verdadera molestia.
Ahí es donde las plataformas de orquestación de contenedores comoKubernetesresultan útiles con sus funciones de monitoreo, automatización, escalado automático y balanceo de carga. Mejor aún, ¡puedes armar un servidor Kubernetes confiable usando placas Raspberry Pi económicas!
Así es como se construye un clúster Proxmox
¿Por qué limitarse a un solo nodo cuando puede construir un clúster completo a partir de sus servidores Proxmox?
Lo que necesitarás para el clúster Kubernetes de Raspberry Pi
Si bien Kubernetes tiene requisitos de sistema bastante bajos, necesitarás al menos una Raspberry Pi 3 para obtener el rendimiento ideal al trabajar con servicios en contenedores. Para un clúster simple, puedes optar por dos Raspberry Pis. Pero si planeas ejecutar un clúster de alta disponibilidad, necesitarás al menos tres nodos para mantener el quórum.
Para maximizar el rendimiento, recomiendo elegir una distribución basada en CLI como Raspberry Pi OS Lite. Tenemos una guía sobrecómo configurar Raspberry Pi OSy el procedimiento general es más o menos el mismo para la versión Lite. Si estás usando Raspberry Pi Imager para preparar la tarjeta microSD, te recomiendo habilitar la opción SSH desde la pestaña Servicios.
(Opcional) Conexión a Raspberry Pi a través de SSH
Para Raspberry Pi OS Lite u otras distribuciones sin interfaz gráfica de usuario, puedes ejecutar un cliente SSH para ejecutar comandos en la SBC desde otra PC. PuTTY es nuestra aplicación favorita para este propósito y aquí te mostramos cómo configurarla en tu sistema:
- Descargue el archivosetup.exede PuTTY delsitio web oficialy úselo para instalar la herramienta en su PC.
- EjecutePuTTY.execomo administrador.
- Escriba ladirección IPde su Raspberry Pi en el campoNombre de host, asegúrese de que aparezca el número22enPuertoy toqueAbrir.Si no conoce la dirección IP de su RPi, puede hacerlo con la ayuda de una utilidad de escaneo de red comoFing.
- Aceptela huella digital SSH cuando PuTTY muestre la ventana emergentede Alerta de seguridad .
- Inicie sesión en Raspberry Pi con sunombre de usuarioycontraseña.
Modificación del archivo cmdline.txt para el clúster de Kubernetes
Antes de poder comenzar a instalar los paquetes de Kubernetes, deberá agregar algunos indicadores adicionales al archivo de configuracióncmdline.txtpara evitar que el kernel Linux de Raspberry Pi cause problemas al configurar el clúster.
- Utilice el editornanopara abrir el archivo/boot/firmware/cmdline.txt.
sudo nano /boot/firmware/cmdline.txt
- Introduzca las siguientes banderas al final de la primera línea:
cgroup_memory=1 cgroup_enable=memoria
- PresioneCtrl+Xseguido deYyEnterpara guardar y salir del archivo.
- Utilice el comandode reiniciopara reiniciar su Raspberry Pi.
sudo reiniciar
Configuración de MicroK8s en Raspberry Pi
Hay muchas formas de implementar un servidor Kubernetes en tu Raspberry Pi, pero usaremos MicroK8s, que es fácil de instalar. Una vez que tu RPi haya terminado de reiniciarse,
- Instale el paquetesnapdejecutando este comando:
sudo apt install snapd -y
- UtiliceSnappara instalar MicroK8s en su SBC.
sudo snap install microk8s --classic
- Otorgue acceso completo al paquete MicroK8s a su usuario normal con el comandousermod.
sudo usermod -a -G microk8s $USUARIO
- Ejecute el comandomkdirpara crear un nuevo directorio para sus paquetes de MicroK8s y usechmodpara permitir que su usuario principal acceda a este directorio.
mkdir -p ~/.kube
chmod 0700 ~/.cubo
- Utilice el comandosupara actualizar los permisos.
su - $USER
Implementación del panel de control de MicroK8s
Si bien puede administrar su servidor Kubernetes con solo comandos de terminal, MicroK8s admite una extensiónde panelpara ayudarlo a acceder a sus contenedores dentro de una interfaz de usuario web conveniente. Para configurarlo,
- Inicie todos los pods MicroK8s con este comando:
El comienzo de Microk8
- Ejecute el siguiente comando para habilitar el panel de MicroK8s.
microk8s habilita el panel de control
- Utilice el argumentoproxypara hacer accesible el panel.
Proxy del panel de control de microk8s
- Abra su navegador favorito y escriba ladirección IPde su Raspberry Pi seguida de dos puntos (:) y el número de puerto10443.
- Utilice el tokengenerado automáticamente desde la terminal para obtener acceso al panel de control.
Configuración de Docker para el entorno de Kubernetes
Dado que Docker Hub posee una gran cantidad de imágenes de contenedores, puede configurar el paquete Docker para obtener imágenes para el clúster Kubernetes de Raspberry Pi.
- Inicie unasesión duplicadapara ejecutar el resto de los comandos.
- Descargue el paquetedocker.iodel repositorioapt.
sudo apt install docker.io -y
- Dado que está trabajando dentro de una nueva instancia de terminal, ejecuteusermodpara otorgarle a su usuario acceso a los paquetes de Docker antes de usarsupara actualizar los permisos.
sudo usermod -aG docker ${USUARIO}
su - ${USER}
- Obtenga sus imágenes de contenedor favoritas usando el comandodocker pull :
docker pull nombre_imagen
- Habilite el registro de MicroK8s con este comando:
microk8s habilitar registro: tamaño=20Gi
- A continuación, tendrás que habilitar registros inseguros dentro del archivo de configuracióndaemon.json.
sudo nano /etc/docker/daemon.json
- Agregue el siguiente código en el archivo antes de presionarCtrl+X,YyEnterpara guardar los cambios.
{
"registros inseguros": ["localhost:32000"]
}
- Reinicie Docker para aplicar los cambios.
sudo systemctl reiniciar docker
- Etiquete la imagen de Docker y envíela al registro de MicroK8s.
etiqueta docker nombre_imagen localhost:32000/nombre_imagen
docker push localhost:32000/nombre_de_imagen
Si el comandopushfalla, intenta habilitar el registro nuevamente usando este comando:microk8s habilita el registro
- Implemente un contenedor para la imagen de Docker usando el comandode creación de implementación:
microk8s kubectl crea implementación nombre_contenedor --image=nombre_imagen
- Puede ejecutar el comandoget podspara verificar el estado de sus contenedores.
Pods de obtención de microk8s kubectl
Creación de un clúster para Kubernetes
Hasta ahora, solo ha configurado Kubernetes en su Raspberry Pi y aún debe crear un clúster para la plataforma de orquestación de contenedores. Si planea usar el SBC actual como nodo maestro, deberá repetir todo el procedimiento en todas las demás placas Raspberry Pi. Una vez que haya configurado todo, aquí le mostramos cómo puede agregar los otros SBC como nodos adicionales para su entorno de Kubernetes:
- Cambie a su nodo maestro Raspberry Pi y ejecute este comando:
nodo adicional microk8s
- (Opcional) Para un clúster de alta disponibilidad, puede habilitar la extensiónha-clusterantes de agregar los otros nodos:
microk8s enable ha-cluster
- Ejecute el comandode uniónseguido de los parámetros proporcionados por el nodo maestro en cada SBC:
microk8s se une a la dirección IP del nodo maestro: 25000/cadena aleatoria 1/cadena aleatoria 2
- Puede confirmar si la conexión fue exitosa utilizando la palabra claveget nodes.
microk8s kubectl obtiene nodos
Administra tus contenedores como un profesional con un clúster Kubernetes de Raspberry Pi
Con eso, su clúster de Kubernetes está completamente operativo y usted es libre de modificar los contenedores a su gusto dentro del Dashboard. Si bien un clúster de K8s completo puede parecer un poco excesivo para una estación de trabajo autoalojada simple, es una excelente manera de administrar los aspectos más finos de suscontenedores. Además, puede otorgar una experiencia práctica invaluable que le resultará útil en su camino hacia DevOps y la administración de sistemas.
Intenté emular juegos de PS3 en Raspberry Pi
Si bien la Raspberry Pi 5 técnicamente puede ejecutar juegos de PS3, decir que son jugables sería demasiado generoso.