# ¿Cómo puedes crear y utilizar un clúster de Kubernetes?

Un clúster de Kubernetes es un sistema compuesto por al menos un nodo de control (maestro) y varios nodos de trabajo donde se ejecutan aplicaciones en contenedores. El clúster gestiona automáticamente la implementación, el escalado y la alta disponibilidad de los contenedores. Esta estructura permite ejecutar aplicaciones de forma fiable y eficiente en entornos distribuidos en la nube.

## ¿Qué es un clúster de Kubernetes?

En términos generales, un clúster es un **conjunto de equipos** que, vistos desde el exterior, funcionan como un único sistema. En [Kubernetes](https://www.ionos.es/digitalguide/servidores/know-how/que-es-kubernetes/), varios nodos se agrupan en clústeres en lugar de ordenadores físicos. Los nodos pueden ser tanto máquinas físicas como [máquinas virtuales](https://www.ionos.es/digitalguide/servidores/know-how/maquina-virtual/).

Las aplicaciones se ejecutan dentro de los clústeres de Kubernetes. Por tanto, los clústeres representan **el nivel más alto dentro de la jerarquía de Kubernetes**.

## ¿Cuáles son los casos de uso de los clústeres de Kubernetes?

Los clústeres son fundamentales para aprovechar todo el potencial de Kubernetes. Solo mediante los clústeres puedes desplegar aplicaciones **sin depender de máquinas concretas**, ya que abstraen los contenedores y permiten su ejecución en distintos equipos, independientemente del sistema operativo. Por ello, son **altamente portátiles**.

Entre los casos de uso más habituales se incluyen:

- **Despliegue de aplicaciones completas**: abarcan varios contenedores y son independientes del hardware subyacente. Esto permite implementar actualizaciones o nuevas funciones rápidamente sin modificar servidores individuales. Como resultado, las aplicaciones funcionan de forma coherente en todos los entornos.
- **Arquitecturas de microservicios**: en esta estructura, las aplicaciones se comunican entre sí y ofrecen una alta escalabilidad. Los [microservicios](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/los-microservicios-en-el-desarrollo-de-aplicaciones/) individuales pueden desarrollarse, actualizarse y ampliarse de manera independiente, lo que mejora la agilidad y la tolerancia a fallos del conjunto.
- **Integración continua (CI) / entrega continua (CD)**: los procesos de [integración continua](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/integracion-continua/) y [entrega continua](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/continuous-delivery/) automatizan la compilación, las pruebas y el despliegue de las aplicaciones. Esto acorta los ciclos de desarrollo, reduce los errores manuales y garantiza que las nuevas funciones lleguen a producción más rápidamente.

## ¿De qué se compone un clúster de Kubernetes?

Un clúster de Kubernetes se compone de un plano de control, también conocido como nodo maestro, y uno o más nodos de trabajo.

### Nodo maestro

El nodo maestro constituye la base de todo el clúster. Se encarga de gestionar el sistema, supervisar su estado y decidir qué aplicaciones se ejecutan y cuándo. El plano de control se compone de varios elementos:

- **Servidor API**: el [servidor API](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/application-programming-interface-api/) actúa como interfaz principal del nodo maestro y gestiona la comunicación con el clúster. Define el estado del sistema y ofrece el punto de acceso a la API de Kubernetes, que puede usarse desde la línea de comandos o mediante una [interfaz gráfica de usuario](https://www.ionos.es/digitalguide/paginas-web/diseno-web/ui-que-es-una-interfaz-de-usuario/) (por ejemplo, Google Cloud Console).
- **Scheduler (planificador)**: asigna los contenedores a los nodos en función de los recursos disponibles. Garantiza que todos los [pods de Kubernetes](https://www.ionos.es/digitalguide/servidores/configuracion/kubernetes-pod/) (grupos de contenedores) se distribuyan correctamente y puedan ejecutarse según lo previsto.
- **Controller Manager (gestor de controladores)**: supervisa distintos controladores, es decir, tareas que se ejecutan en segundo plano. Actúa cuando un nodo falla y se asegura de que el estado actual del clúster coincida con el deseado.
- **etcd**: [etcd](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/que-es-etcd/) es una base de datos de tipo clave-valor que almacena todos los datos críticos del clúster. Como parte del plano de control, sirve de respaldo y garantiza la coherencia de la configuración y el estado del sistema. Está organizada como un [almacén de pares clave-valor](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/bases-de-datos-clave-valor/).

### Nodos de trabajo

Cada clúster de Kubernetes cuenta con uno o varios nodos de trabajo que se encargan de ejecutar las **aplicaciones y tareas** asignadas por el nodo maestro. Los nodos de trabajo incluyen dos componentes principales:

- **Kubelet**: es el servicio encargado de comprobar que **cada contenedor de un pod** esté en funcionamiento. Para ello, Kubelet interactúa con el motor de contenedores encargado de su creación y gestión.
- **Kube-proxy**: aplica las reglas de red y gestiona el reenvío de las conexiones cuando es necesario.

## Cómo crear un clúster de Kubernetes

Un clúster de Kubernetes puede desplegarse tanto en máquinas físicas como virtuales. Existen distintas formas de crear tus propios clústeres.

### Crear un clúster de Kubernetes con Minikube

Para crear un clúster de Kubernetes sencillo con un único nodo de trabajo, puedes usar [Minikube](https://www.ionos.es/digitalguide/servidores/herramientas/kubernetes-minikube/). Es una herramienta que permite ejecutar Kubernetes localmente en tu ordenador. Minikube puede instalarse en los sistemas operativos más comunes y está documentado en numerosos [tutoriales de Kubernetes](https://www.ionos.es/digitalguide/servidores/configuracion/tutorial-de-kubernetes/). Para comprobar que la instalación se ha realizado correctamente, introduce el siguiente comando en el terminal:

```bash
minikube version
```

Inicia Minikube con este comando:

```bash
minikube start
```

Tras ejecutarlo, Minikube inicia **una máquina virtual** dentro de la cual se ejecuta automáticamente un clúster de Kubernetes. Para interactuar con Kubernetes, puedes usar la herramienta de línea de comandos **kubectl**. Para verificar que está instalada, usa el siguiente comando:

```bash
kubectl version
```

Para ver la información del clúster:

```bash
kubectl cluster-info
```

Y para listar los nodos donde pueden ejecutarse las aplicaciones:

```bash
kubectl get nodes
```

### Crear un clúster de Kubernetes con kind

Si quieres crear un clúster con **varios nodos**, puedes utilizar la herramienta [kind](https://kind.sigs.k8s.io/docs/user/quick-start/ "Documentación de kind"). Kind está disponible para todos los sistemas operativos principales y puede instalarse fácilmente mediante un gestor de paquetes. En el siguiente ejemplo, se utiliza Choco en Windows:

```bash
choco install kind
```

Para un clúster con varios nodos de trabajo, crea un archivo de configuración [YAML](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/yaml-el-ligero-framework-css-para-expertos/) en el directorio que prefieras. En este archivo defines la **estructura de tu clúster**. Un ejemplo de configuración para un clúster con un nodo maestro y dos de trabajo sería:

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

Por último, crea el clúster de Kubernetes con el archivo de configuración que has definido anteriormente mediante el siguiente comando:

```none
kind create cluster --config archivodeejemplo.yaml
```


This is a markdown version of: [https://www.ionos.es/digitalguide/servidores/know-how/cluster-kubernetes/](https://www.ionos.es/digitalguide/servidores/know-how/cluster-kubernetes/) for AI/LLM consumption.