Clúster de Kubernetes: guía para principiantes

Kubernetes es un popular sistema para orquestar contenedores. Una de las entidades más importantes de todo el sistema Kubernetes está formada por “clústeres”, que se utilizan siempre en Kubernetes.

Managed Kubernetes de IONOS

Una forma fácil de gestionar la carga de trabajo de contenedores. Configuración de clústeres de Kubenetes completamente automatizados y visibilidad y control máximos de los clústeres K8s.

Almacenamiento persistente
Soporte profesional 24/7
Configuración automatizada del clúster

¿Qué es un clúster Kubernetes?

Los clústeres son generalmente un grupo de ordenadores que funcionan como si fueran uno. En Kubernetes, en lugar de ordenadores físicos, se combinan varios nodos en clústeres. Estos nodos son máquinas virtuales o físicas.

Las aplicaciones individuales se ejecutan en los clústeres de Kubernetes, que se corresponde con el nivel más alto de la jerarquía de Kubernetes.

Posibles aplicaciones de los clústeres Kubernetes

Los clústeres son importantes para poder aprovechar las ventajas de Kubernetes, pues permiten desplegar las aplicaciones sin vincularlas a máquinas concretas. Por lo tanto, su objetivo principal es abstraer los contenedores y ejecutarlos en todos los ordenadores. Al mismo tiempo, no están sujetos a un sistema operativo concreto y, por tanto, son muy flexibles.

Los clústeres también sirven para utilizar microservicios. Gracias a Kubernetes, las aplicaciones desplegadas con ellos pueden comunicarse entre sí, mientras se garantiza una gran escalabilidad, por lo que siempre puedes ajustar el uso de recursos de la mejor manera posible.

Asimismo, también puede hacerse uso de los clústeres para ejecutar trabajos de integración continua o continuous delivery.

Consejo

IONOS Managed Kubernetes ofrece clusters Kubernetes perfectamente integrados en el ecosistema IONOS.

¿Qué es un clúster de Kubernetes?

Un clúster de Kubernetes está formado por una unidad de control, también llamada nodo principal (o master), y uno o más nodos de trabajo (o workers).

Nodo master

El nodo principal es la base de todo el clúster y se encarga de su administración. Para ello, se ocupa del estado del clúster, por ejemplo, determinando qué aplicación se ejecuta y cuándo ha de hacerse. El controlador, a su vez, se divide en varios componentes:

  • Servidor API
  • Programador
  • Director de controladores
  • etcd

Servidor API

El servidor de la API es la parte frontal del nodo master y coordina la comunicación con el clúster de Kubernetes. La interfaz se utiliza para definir el estado del clúster. La interacción con la API de Kubernetes se produce mediante la línea de comandos o a través de la interfaz de usuario de la consola de Google Cloud.

Programador

El programador (o scheduler) se encarga de desplegar los contenedores en función de los recursos disponibles. Se asegura de que todos los pods (grupos de contenedores) se asignen a un nodo y, por tanto, puedan ejecutarse.

Gestor de controladores

El gestor de controladores (o Controller Manager) se utiliza para coordinar los distintos controladores, que son básicamente procesos. Entre otras cosas, esto garantiza que se tomen las medidas adecuadas si los nodos individuales fallan. De forma más general, el gestor de controladores se encarga de ajustar el estado actual de un clúster al estado deseado en cada momento.

etcd

El etcd es un componente del controlador que almacena todos los datos importantes del clúster. Es decir, el etcd puede considerarse como un almacenamiento de reserva para Kubernetes.

Nodos de trabajo

Cada clúster tiene al menos un nodo de trabajo, aunque normalmente cuenta con varios. Los nodos ejecutan las tareas y aplicaciones que les asigna la unidad de control e incluyen dos componentes:

  • Kubelet
  • Kube-Proxy

Kubelet

Kubelet es un componente de los nodos de trabajo que garantiza que cada contenedor se ejecute en un pod. Para ello, Kubelet interactúa con Docker Engine, un programa de creación y gestión de contenedores.

Kube-Proxy

El uso del proxy de Kube garantiza el cumplimiento de las reglas de la red. El componente también es responsable de realizar el reenvío de la conexión.

Creación de clústeres de Kubernetes

Un clúster de Kubernetes puede desplegarse en máquinas virtuales o físicas. Para crear tus propios clústeres, hay varias opciones.

Consejo

En nuestro tutorial de Kubernetes aprende en detalle a instalar Kubernetes y a trabajar con clústeres en Kubernetes.

Minikube

Para crear un clúster simple con un nodo trabajador, puedes utilizar Minikube, una herramienta para ejecutar Kubernetes de forma local en tu propia máquina compatible con los principales sistemas operativos. Para comprobar si se ha llevado a cabo correctamente la instalación de Minikube, puedes introducir el siguiente comando en el terminal:

minikube version

Utiliza la siguiente secuencia para iniciar Minikube:

minikube start

Después de ejecutar este comando, Minikube arranca una máquina virtual, en la que se ejecutará un clúster automáticamente. Para interactuar con Kubernetes, puedes utilizar la línea de comandos de Kubernetes. Para saber si está instalado, utiliza el siguiente comando de terminal:

kubectl version

Puedes visualizar los detalles de tu clúster con

kubectl cluster-info

También puedes ver los nodos individuales en los que pueden ejecutarse tus aplicaciones directamente en la terminal:

kubectl get nodes

Kind

Si quieres crear un clúster de Kubernetes con más de un nodo, puedes utilizar la herramienta kind, también disponible para los principales sistemas operativos. La forma más fácil de instalarla es a través del gestor de paquetes. En los ejemplos mostrados aquí, se utiliza choco para Windows:

choco install kind

Para un clúster con varios nodos de trabajo, crea un archivo yaml de configuración en cualquier directorio. En este archivo, puedes definit la estructura de tu clúster. Por ejemplo, un archivo de configuración para un clúster de Kubernetes con un master y dos nodos de trabajo podría tener el siguiente aspecto:

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

A continuación, puedes crear un clúster de Kubernetes según la configuración que hayas elegido con el siguiente comando:

kind create cluster --config archivodeejemplo.yaml