Skip to Content

¿Qué es un clúster de Kubernetes?

Los subprocesos azules se entrecruzan y conectan varios nodos sobre un fondo oscuro, lo que se asemeja a un diagrama de red.

Kubernetes ha revolucionado la manera en que las organizaciones gestionan las aplicaciones contenedorizadas al proporcionar un sistema sólido para automatizar el despliegue, el escalamiento y las operaciones. En el corazón de Kubernetes se encuentra el concepto de clúster, que es esencial para una orquestación eficiente de los contenedores. Entender los clústeres de Kubernetes es crucial para cualquier organización que desee aprovechar al máximo las tecnologías de contenedores.

En este artículo, veremos qué es un clúster de Kubernetes, sus componentes, cómo configurar uno y las mejores prácticas de gestión.

¿Qué es un clúster de Kubernetes?

Un clúster de Kubernetes es un grupo de máquinas (nodos) que trabajan juntas para ejecutar y administrar aplicaciones contenedorizadas. El objetivo principal de un clúster de Kubernetes es automatizar el despliegue, el escalamiento y la gestión de las aplicaciones contenedorizadas. Esto se traduce en varias ventajas clave para los usuarios, como:

  • Escalabilidad mejorada: Los clústeres de Kubernetes proporcionan escalabilidad elástica. Puede escalar fácilmente sus aplicaciones hacia arriba o hacia abajo añadiendo o eliminando nodos según sea necesario. Por ejemplo, puede añadir más nodos durante los periodos de tráfico pico para gestionar el aumento de la carga. Por el contrario, puede reducir su clúster durante los periodos de baja demanda para ahorrar recursos.
  • Mayor tolerancia a fallos: Los clústeres de Kubernetes están diseñados para estar muy disponibles. Lo consiguen a través de la replicación, en la que las aplicaciones críticas se ejecutan en múltiples pods en diferentes nodos. Si un nodo falla, Kubernetes reinicia automáticamente los contenedores que fallan y los reprograma en nodos en buen estado. Esto garantiza que, incluso en caso de fallo de un nodo, su aplicación siga estando disponible y operativa.
  • Gestión simplificada: Los clústeres de Kubernetes agilizan la gestión de las aplicaciones contenedorizadas. En lugar de gestionar manualmente las configuraciones de cada nodo individual, Kubernetes utiliza archivos de configuración declarativos escritos en YAML. Estos archivos especifican el estado deseado de su aplicación y Kubernetes se encarga de garantizar que el estado se mantenga.

Componentes de un clúster de Kubernetes

Un clúster de Kubernetes consta de dos componentes principales: el plano de control y los nodos de trabajo. Cada uno de estos componentes desempeña un papel específico en la gestión del clúster y la ejecución de las aplicaciones contenedorizadas.

Plano de control

El plano de control actúa como cerebro del clúster de Kubernetes, responsable de tomar decisiones y emitir comandos a los nodos de los trabajadores. Consta de varios componentes clave, incluidos:

  • Servidor API: El servidor API es el hub de comunicación central del clúster. Expone la API de Kubernetes, que sirve como punto de entrada para todas las tareas administrativas y las interacciones con el clúster. Los usuarios y las herramientas como kubectl interactúan con el clúster a través del servidor API para enviar comandos, administrar implementaciones y acceder a la información del clúster.
  • etcd: etcd es un almacén de clave-valor distribuido de gran disponibilidad que actúa como fuente única de información veraz para el estado del clúster. Almacena información crítica sobre la configuración del clúster, incluidas las definiciones de los pods, los detalles del servicio y el estado deseado de las implementaciones. Estos datos se replican en múltiples nodos grabados para garantizar la coherencia y la tolerancia a los fallos.
  • Programador: El programador es responsable de asignar cargas de trabajo (pods) a los nodos de los trabajadores en el clúster. Tiene en cuenta factores como la disponibilidad de los recursos, la capacidad de los nodos y las reglas antiafinidad de los pods a la hora de tomar decisiones de programación. Por ejemplo, el programador puede repartir pods en diferentes nodos para mejorar el uso de recursos o priorizar pods con grandes requisitos de recursos en nodos con una gran capacidad.
  • Responsable del controlador: El gestor de controladores es el punto central para gestionar todos los controladores del clúster. Los controladores son responsables de supervisar continuamente el estado del clúster y de tomar medidas correctivas para garantizar que el estado real del clúster coincida con el estado deseado definido en la configuración. El gestor de controladores gestiona varios controladores principales, cada uno con un propósito específico.

Nodos de trabajador

Los nodos de los trabajadores son los caballos de batalla del clúster. Son las máquinas que realmente ejecutan aplicaciones contenedorizadas. Cada nodo de trabajador tiene varios componentes responsables de gestionar y ejecutar los contenedores:

  • Kubelet: El kubelet es un agente que se ejecuta en cada nodo de trabajador. Actúa como representante del plano de control en el nodo y es responsable del ciclo de vida de los pods asignados al nodo. Kubelet garantiza que los contenedores de un pod se descarguen, configuren y ejecuten de acuerdo con la especificación del pod. También supervisa el estado de los contenedores, reinicia los contenedores que fallan y extrae los secretos que los contenedores necesitan para ejecutarse de manera segura.

  • Proxy de Kube: Kube-proxy es un proxy de red que se ejecuta en cada nodo de trabajador. Implementa políticas de red definidas para el clúster y garantiza que los pods puedan comunicarse entre sí y con los servicios externos. Kube-proxy mantiene las reglas de enrutamiento de la red y traduce los nombres de servicio en direcciones IP de pods, lo que permite que los pods descubran y se comuniquen con los servicios dentro del clúster.

Al trabajar conjuntamente, estos componentes dentro del plano de control y los nodos de trabajo permiten que Kubernetes gestione y orqueste eficazmente las aplicaciones contenedorizadas a escala.

Configuración de un clúster de Kubernetes

Puede configurar un clúster de Kubernetes mediante dos métodos principales: el uso de un servicio administrado de Kubernetes o su implementación manual.

Servicios gestionados de Kubernetes

Los proveedores de nube como Google Cloud Platform (GCP) con Google Kubernetes Engine (GKE), Amazon Web Services (AWS) con Elastic Kubernetes Service (EKS) y Microsoft Azure con Azure Kubernetes Service (AKS) ofrecen servicios de Kubernetes gestionados. Estos servicios se encargan de las complejidades del aprovisionamiento, la configuración y la gestión de la infraestructura de clúster de Kubernetes. Solo tiene que definir la configuración de clúster deseada y el servicio se encarga del trabajo pesado, lo que le permite centrarse en desplegar sus aplicaciones contenedorizadas.

Despliegue manual

Para un mayor control y personalización, puede desplegar un clúster de Kubernetes manualmente usando una herramienta como kubeadm. Kubeadm es un kit de herramientas para arrancar un clúster de Kubernetes. Este método consiste en instalar kubeadm en un nodo maestro designado y el agente kubelet en todos los nodos de trabajador del clúster. 

Configuración manual de un clúster de Kubernetes

Requisitos previos

  • Infraestructura: Asegúrese de tener una infraestructura suficiente, como máquinas virtuales o instancias de nube.
  • Tiempo de ejecución del contenedor: Instale un tiempo de ejecución de contenedor como contenedor o Docker en todos los nodos.

Medida 1: Instale kubeadm, kubelet y kubectl

En todas las máquinas (nodos maestro y de trabajador), utilice el administrador de paquetes de su distribución para instalar las herramientas de kubeadm necesarias:

# Update package lists (replace 'your_package_manager' with your actual package manager like apt-get or yum)
 $ sudo your_package_manager update
 
 # Install kubeadm, kubelet, and kubectl
 $ sudo your_package_manager install -y kubeadm kubelet kubectl

Nota: En algunos sistemas, es posible que se necesite una configuración adicional después de la instalación. Consulte la documentación oficial de Kubernetes para obtener detalles específicos del sistema operativo elegido.

Haga un Test Drive con FlashArray

Experimente cómo Pure Storage simplifica drásticamente los bloques y los archivos en un entorno de autoservicio.

Probar ahora

Medida 2: Inicializar el plano de control (nodo maestro)

Elija una de sus máquinas para que actúe como nodo maestro. Ejecute el siguiente comando en el nodo maestro para inicializar el plano de control. Este proceso genera archivos de configuración y proporciona un comando de unión para los nodos de trabajador:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • inicio de kubeadm: Este comando inicializa el plano de control en el nodo maestro.
  • --pod-network-cidr=10.244.0.0/16: Esta opción especifica el rango CIDR para la red de pods. Puede ajustar este valor en función de las necesidades de configuración de su red.

Después de ejecutar el comando de inicialización, kubeadm proporcionará una salida con un comando de unión para los nodos de trabajador. Tome nota de este comando, ya que lo necesitará en el Paso 5.

Medida 3: Configurar kubectl

En el nodo maestro, copie el archivo de configuración de administrador generado en su directorio de configuración kubectl local. Esto le permite administrar el clúster usando comandos kubectl. El siguiente comando lo consigue:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

Medida 4: Despliegue de una red de pods

Un complemento de red de pods permite la comunicación entre pods dentro del clúster. La franela es una opción de red de pod popular. Puede desplegar Flannel usando el siguiente comando en el nodo maestro:

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Medida 5: Únase a los nodos de los trabajadores en el clúster

En cada nodo de trabajador, ejecute el comando de unión proporcionado por kubeadm durante el paso de inicialización en el nodo maestro (paso 2). Este comando registra el nodo de trabajador con el plano de control y lo prepara para ejecutar cargas de trabajo contenedorizadas. El comando de unión suele tener el siguiente aspecto:

$ sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
  • <master_ip_address>: Sustitúyalo por la dirección IP de su nodo maestro.
  • <token>: Sustitúyalo por el token generado durante el proceso de inicialización en el nodo maestro.
  • <hash>: Sustitúyalo por el hash de certificado CA del token de descubrimiento proporcionado por la salida de comando inicial de kubeadm.

Paso 6: Compruebe el estado del clúster

Una vez que todos los nodos de trabajador se hayan unido al clúster, verifique el estado de su clúster usando comandos kubectl:

$ kubectl get pods -n kube-system
Evergreen One

Reduzca el riesgo con Evergreen//One™

El tiempo de inactividad no es una opción Con Pure se asegura que siempre estará preparado para satisfacer las demandas de capacidad.

Explore Evergreen//One

Gestión de un clúster de Kubernetes

La gestión efectiva de un clúster de Kubernetes es crucial para mantener el rendimiento y la fiabilidad. Esto incluye escalar, actualizar y actualizar los nodos del clúster.

Escalamiento del clúster

Kubernetes ofrece escalamiento horizontal, lo que le permite ajustar fácilmente el número de nodos de trabajador en función de las demandas de su carga de trabajo.

  1. Adición de nodos (escalación ascendente):
    1. Prepare el nuevo nodo: Asegúrese de que el nuevo nodo cumple los requisitos del sistema recomendados para la versión deseada de Kubernetes. Instale el software necesario, incluido un tiempo de ejecución de contenedor como Docker o contenedor y el agente kubelet. Consulte la documentación oficial de Kubernetes para conocer los pasos de instalación detallados basados en su sistema operativo.
    2. Unir el nodo al clúster: Utilice el comando de unión de kubeadm en el nuevo nodo para unirse al clúster existente. Necesitará la siguiente información de la configuración inicial de su clúster:
      • Dirección IP del nodo maestro: La dirección IP de su nodo maestro.
      • Unirse al token: Este token se generó durante la inicialización del plano de control y se proporcionó en la salida.

Aquí tiene un ejemplo de comando de unión de kubeadm:

$ sudo kubeadm unirse a <master_ip_address>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

  • Sustitúyalo <master_ip_address> por la dirección IP real de su nodo maestro.
  • Sustitúyalo <token> por el token generado durante la inicialización del plano de control.
  • Sustitúyalo <hash> por el hash de certificado CA del token de detección de la salida de inicialización del plano de control.

Eliminación de nodos (escalado hacia abajo):
Antes de eliminar un nodo, es crucial vaciarlo primero. El drenaje garantiza que sus aplicaciones no tengan interrupciones, al expulsar con gracia los pods del nodo y programarlos en nodos en buen estado.

Drene el nodo : Utilice el comando de drenaje de kubectl para drenar el nodo que desea eliminar. Este comando elimina los pods del nodo y permite que DaemonSets (servicios críticos del sistema) siga ejecutándose.

$ kubectl drain <node-name> --ignore-daemonsets

Sustitúyalo <node-name> por el nombre de host o la dirección IP del nodo que desee eliminar.

 

Elimine el nodo : Una vez drenado, puede eliminar de manera segura el nodo del clúster usando el comando de eliminación de nodo kubectl.

 

$ kubectl delete node <node-name>

Sustitúyalo <node-name> por el nombre de host o la dirección IP del nodo que desee eliminar.

También puede realizar otras operaciones de gestión, como actualizar el plano de control, actualizar el nodo del trabajador y realizar actualizaciones continuas.

Mantenimiento del máximo rendimiento: Supervisión, registro y almacenamiento

La supervisión y el registro efectivos son cruciales para mantener su clúster de Kubernetes en buen estado. Herramientas como Prometheus y ELK Stack ofrecen una visión profunda del uso de los recursos, el estado de los pods y el rendimiento general, lo que le permite identificar y abordar de manera proactiva los problemas antes de que afecten a las aplicaciones. Kubernetes también se integra con varias soluciones de terceros para ofrecer flexibilidad.

La gestión eficiente de los datos es clave para las aplicaciones con estado. Portworx ® de Pure Storage proporciona una solución potente y nativa de contenedores que se integra perfectamente con su clúster de Kubernetes.

Portworx optimiza el almacenamiento para sus cargas de trabajo al:

  • Proporcionar volúmenes persistentes: Garantiza que los datos persistan incluso cuando los pods se reinician o se reprograman.
  • Proporciona protección de datos y recuperación de desastres: Ofrece copias instantáneas y replicación y minimiza los tiempos de inactividad durante los incidentes.
  • Simplificación de la gestión: Proporciona una interfaz fácil de usar para el aprovisionamiento, la supervisión y la gestión de los recursos de almacenamiento.

Conclusión

Los clústeres de Kubernetes son fundamentales para la orquestación moderna de contenedores y ofrecen una escalabilidad mejorada, tolerancia a los fallos y una gestión simplificada de las aplicaciones. Comprender los componentes, el proceso de configuración y las prácticas de gestión de los clústeres de Kubernetes es crucial para aprovechar todo su potencial. Portworx de Pure Storage se integra perfectamente con Kubernetes , proporcionando unas sólidas capacidades de almacenamiento que mejoran la eficiencia y la fiabilidad generales de las cargas de trabajo contenedorizadas.

02/2025
Deploying Portworx on Google Distributed Cloud Anthos with vSphere
This Portworx reference architecture contains a validated architecture and design model to deploy Portworx on Anthos running on vSphere.
Arquitectura de referencia
28 pages

Explore los recursos y eventos clave

WEBINAR
Una nueva era para la seguridad bancaria: lo esencial para mejorar la resistencia operativa

A la luz de la nueva normativa de la Ley de Resiliencia Operativa Digital (DORA), la resiliencia operativa se ha convertido en una de las cuestiones más importantes del sector financiero.

Ver el Webinar
LIDERAZGO INTELECTUAL
La carrera por la innovación

Las últimas ideas y puntos de vista de los líderes del sector que están a la vanguardia de la innovación en almacenamiento.

Más información
INFORME DE ANALISTA
Planifique su futuro ciberresiliente

Aprenda estrategias de colaboración para aprovechar plenamente las inversiones en ciberseguridad y garantizar una respuesta y una recuperación rápidas.

Lea el informe
RECURSO
Deje de comprar almacenamiento y apueste por las plataformas

Explore las necesidades, los componentes y el proceso de selección de plataformas de almacenamiento empresarial.

Lea el informe
CONTACTAR CON NOSOTROS
Contactar con PureIcono de información
Icono del chat
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudarle.

Icono de la llave
Programe una Demostración

Programe una demostración en vivo y vea personalmente cómo Pure puede ayudarle a convertir sus datos en unos resultados potentes. 

Llámenos al: +34 51 889 8963

Medios de comunicaciónpr@purestorage.com

 

Castellana 81

28046 Madrid

Oficinas Pure: 1415 y 1417 (planta 14)

info@purestorage.com

CERRAR
CerrarCerrar icono X
Your Browser Is No Longer Supported!

Older browsers often represent security risks. In order to deliver the best possible experience when using our site, please update to any of these latest browsers.