Elección de una opción de la plataforma Kubernetes sin sistema operativo en el borde

Azure Kubernetes Service (AKS)

Si quiere ejecutar Kubernetes en el borde y observa que las soluciones administradas no cumplen exactamente sus requisitos, es posible que esté considerando un equipo sin sistema operativo como una opción. Este documento le ayuda a buscar la mejor opción disponible para su caso de uso al configurar clústeres de Kubernetes en el borde.

Nota

Este artículo no es una comparación exhaustiva; en su lugar, presenta posibles vías para tomar decisiones basadas en los principales calificadores entre opciones comunes.

Árbol de decisión para Kubernetes sin sistema operativo en el borde

Consulte el árbol siguiente al decidir entre las opciones que se presentan a continuación para Kubernetes sin sistema operativo en el borde.

Diagrama en el que se muestra un diagrama de flujo para decidir qué opciones de equipo sin sistema operativo se deben usar.

Descargue un archivo de Visio de este diagrama de flujo.

  • MicroK8s: conforme a Kubernetes con pocas operaciones de Canonical.

  • K3s: distribución de Kubernetes certificada creada para IoT y procesos perimetrales.

  • kubeadm: herramienta de Kubernetes para crear clústeres de Kubernetes desde cero; ideal para el proceso estándar (Linux/Windows).

Nota

Pocas operaciones hace referencia al costo reducido de las operaciones cuando algunas tareas operativas se abstraen o facilitan, como actualizaciones automáticas o actualizaciones simplificadas.

MicroK8s de Canonical

MicroK8s se entrega como un único paquete snap que se puede instalar fácilmente en máquinas Linux con soporte de acoplamiento. Hay instalaciones alternativas disponibles para Windows, macOS y Raspberry PI/ARM. Cuando se instala, MicroK8s crea un clúster de un solo nodo que se puede administrar con las herramientas de MicroK8s. Se empaqueta con su propio kubectl y se pueden habilitar determinados complementos (por ejemplo, helm, dns, entrada, metallb,etc.). También se admiten escenarios de varios nodos, nodos de Windows y alta disponibilidad.

Consideraciones:

  • Existen varios requisitos de recursos en función de dónde se quiera ejecutar MicroK8s. Consulte los documentos del producto para conocer los requisitos mínimos de los recursos. Por ejemplo:

    • Ubuntu: 4 GB de RAM, 20 GB de espacio en disco

    • Windows: 4 GB de RAM, 40 GB de espacio en disco

  • Las cargas de trabajo de Windows solo se admiten para clústeres de MicroK8s con Calico CNI.

  • Cada nodo de un clúster de varios nodos de MicroK8s requiere su propio entorno en el que funcionar, ya sea una VM o un contenedor independiente en una sola máquina o en una máquina diferente en la misma red.

  • Es posible que surjan dificultades al ejecutar MicroK8s en hardware de ARM determinado. Consulte los documentos para conocer las posibles soluciones.

K3s de Rancher

K3s es una distribución ligera de Kubernetes. K3s se implementa como un único binario y viene con herramientas insertadas, como kubectl y ctr, de manera similar a MicroK8s.

Consideraciones:

  • El archivo binario es inferior a 100 MB, pero todavía hay requisitos mínimos de recursos en función de su escenario. Consulte los documentos para conocer los requisitos mínimos de los recursos.

  • SQLite3 es el sistema de almacenamiento predeterminado, aunque se admiten otras opciones.

  • Los nodos con Windows no son compatibles actualmente con K3s.

  • La alta disponibilidad se puede lograr con una base de datos externa o una base de datos insertada. K3s incluye compatibilidad completa con etcd insertado a partir de la versión v1.19.5+k3s1.

kubeadm

Kubeadm es una instalación estándar de Kubernetes desde cero.

Consideraciones:

  • Requiere 2 GiB (gibibytes) o más de RAM por máquina.

  • Requiere al menos 2 CPU en el nodo del plano de control.

  • El nodo del plano de control debe ser una máquina que ejecute un sistema operativo Linux compatible con deb/rpm.

  • La directiva de compatibilidad de sesgo de versión y versión de Kubernetes se aplica a kubeadm y a Kubernetes en general. Compruebe esa directiva para obtener información sobre las versiones de Kubernetes y kubeadm que se admiten.

Administración y automatización

En lo que respecta a la automatización y administración del aprovisionamiento de clústeres sin sistema operativo, hay un par de opciones que explorar: Ansible y Metal3.

Ansible proporciona una manera sencilla de administrar recursos remotos y, por lo tanto, es un candidato ideal para administrar y unir nodos remotos a un clúster de Kubernetes. Todo lo que necesita es el binario de Ansible, que se ejecuta en una máquina Linux, y SSH en máquinas remotas. Este método proporciona un mecanismo flexible para ejecutar scripts arbitrarios en máquinas de destino, lo que significa que podría usar Ansible con cualquiera de las herramientas mencionadas anteriormente.

Metal3 adopta un enfoque diferente para resolver este problema mediante el uso de conceptos similares a Cluster API. Tendrá que crear una instancia de un clúster efímero para aprovisionar y administrar clústeres sin sistema operativo mediante objetos nativos de Kubernetes. En el momento de la escritura, Metal3 usa kubeadm y, por lo tanto, no admite distribuciones ligeras de Kubernetes.

Para la administración más allá del aprovisionamiento de clústeres, considere la posibilidad obtener información sobre los clústeres habilitados para Azure Arc para administrar los clústeres en Azure.

Pasos siguientes

Para más información, consulte los siguientes artículos.