Skip to Content

¿Qué es un clúster de Kubernetes?

Los hilos azules se entrecruzan y conectan varios nodos en un fondo oscuro, similar a un diagrama de red.

Kubernetes ha revolucionado la forma en que las organizaciones administran las aplicaciones en contenedores al proporcionar un sistema sólido para automatizar la implementación, la escalabilidad y las operaciones. En el corazón de Kubernetes se encuentra el concepto de un clúster, que es esencial para la organización eficiente de contenedores. Comprender los clústeres de Kubernetes es crucial para cualquier organización que busque aprovechar las tecnologías de contenedores a su máximo potencial.

En este artículo, exploraremos qué es un clúster de Kubernetes, sus componentes, cómo configurar uno y las mejores prácticas para la administració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 en contenedores. El propósito principal de un clúster de Kubernetes es automatizar la implementación, el escalamiento y la administración de aplicaciones en contenedores. Esto se traduce en varios beneficios clave para los usuarios, como los siguientes:

  • Escalabilidad mejorada: Los clústeres de Kubernetes proporcionan escalabilidad elástica. Puede escalar fácilmente sus aplicaciones hacia arriba o hacia abajo agregando o eliminando nodos según sea necesario. Por ejemplo, puede agregar más nodos durante los períodos de tráfico pico para manejar el aumento de la carga. Por el contrario, puede escalar su clúster durante períodos de baja demanda para ahorrar recursos.
  • Tolerancia a fallas mejorada: Los clústeres de Kubernetes están diseñados para estar altamente disponibles. Logran esto a través de la replicación, donde las aplicaciones críticas se ejecutan en varios pods en diferentes nodos. Si un nodo falla, Kubernetes reinicia automáticamente los contenedores defectuosos y los reprograma en nodos sanos. Esto garantiza que, incluso en caso de una falla del nodo, su aplicación permanezca disponible y operativa.
  • Administración simplificada: Los clústeres de Kubernetes optimizan la administración de las aplicaciones en contenedores. En lugar de administrar manualmente las configuraciones en cada nodo individual, Kubernetes utiliza archivos de configuración declarativa escritos en YAML. Estos archivos especifican el estado deseado de su aplicación, y Kubernetes se encarga de garantizar que se mantenga ese estado.

Componentes de un clúster de Kubernetes

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

Plano de control

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

  • Servidor API: El servidor API es el núcleo de comunicación central para el clúster. Expone la API de Kubernetes, que sirve como punto de entrada para todas las tareas administrativas e interacciones con el clúster. Los usuarios y las herramientas como kubectl interactúan con el clúster a través del servidor de API para enviar comandos, administrar implementaciones y acceder a la información del clúster.
  • etcd: etcd es un almacenamiento de valor de clave distribuido de alta disponibilidad que actúa como la única fuente de verdad para el estado del clúster. Almacena información crítica sobre la configuración del clúster, incluidas las definiciones del pod, los detalles del servicio y el estado deseado de las implementaciones. Estos datos se replican en varios nodos grabados para garantizar la consistencia y la tolerancia a fallas.
  • Programador: El programador es responsable de asignar cargas de trabajo (pods) a los nodos de trabajadores en el clúster. Considera factores como la disponibilidad de recursos, la capacidad de nodos y las reglas antiafinidad de pods al tomar decisiones de programación. Por ejemplo, el programador puede extender pods a través de diferentes nodos para mejorar la utilización de recursos o priorizar pods con altos requisitos de recursos en nodos con amplia capacidad.
  • Gerente del controlador: El administrador de controladores es el punto central para administrar todos los controladores en el clúster. Los controladores son responsables de monitorear continuamente el estado del clúster y tomar medidas correctivas para garantizar que el estado real del clúster coincida con el estado deseado definido en la configuración. El administrador de controladores administra varios controladores centrales, cada uno con un propósito específico.

Nodos del trabajador

Los nodos de trabajadores son los caballos de batalla del clúster. Son las máquinas que realmente ejecutan aplicaciones en contenedores. Cada nodo de trabajador tiene varios componentes responsables de administrar y ejecutar 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 módulos asignados al nodo. Kubelet garantiza que los contenedores dentro de un pod se descarguen, configuren y ejecuten de acuerdo con la especificación del pod. También monitorea el estado de los contenedores, reinicia los contenedores defectuosos y extrae los secretos requeridos por los contenedores para que se ejecuten de manera segura.

  • Apoderado 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 reglas de enrutamiento de red y traduce nombres de servicios a direcciones IP de pod, lo que permite que los pods descubran y se comuniquen con los servicios dentro del clúster.

Al trabajar juntos, estos componentes dentro del plano de control y los nodos de los trabajadores permiten que Kubernetes administre y organice de manera eficaz las aplicaciones en contenedores a escala.

Configuración de un clúster de Kubernetes

Puede configurar un clúster de Kubernetes a través de dos métodos principales: usar un servicio de Kubernetes administrado o implementarlo manualmente.

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 gestionados de Kubernetes. Estos servicios se encargan de las complejidades del aprovisionamiento, la configuración y la administración de la infraestructura de clústeres de Kubernetes. Simplemente defina la configuración de clúster deseada y el servicio se encarga de la carga pesada, lo que le permite enfocarse en implementar sus aplicaciones en contenedores.

Implementación manual

Para obtener más control y personalización, puede implementar un clúster de Kubernetes manualmente usando una herramienta como kubeadm. Kubeadm es un kit de herramientas para el arranque de un clúster de Kubernetes. Este método implica instalar kubeadm en un nodo maestro designado y el agente de kubelet en todos los nodos de trabajadores en el clúster. 

Configuración manual de un clúster de Kubernetes

Requisitos previos

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

Paso 1: Instale kubeadm, kubelet y kubectl

En todas las máquinas (nodos maestros y de trabajadores), utilice el administrador de paquetes de su distribución para instalar las herramientas 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 requiera una configuración adicional después de la instalación. Consulte la documentación oficial de Kubernetes para obtener detalles específicos de su sistema operativo elegido.

Pruebe FlashArray

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

Pruebe ahora

Paso 2: Inicialice 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 nodos de trabajadores:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • kubeadm init: 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 de CIDR para la red de pod. Puede ajustar este valor según sus necesidades de configuración de red.

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

Paso 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 logra esto:

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

Paso 4: Implemente una red de pod

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

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

Paso 5: Únase a los nodos de 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 del trabajador con el plano de control y lo prepara para ejecutar cargas de trabajo en contenedores. Por lo general, el comando de unión se ve así:

$ sudo kubeadm join :6443 --token --discovery-token-ca-cert-hash sha256:
  • <master_ip_address>: Reemplace esto con la dirección IP de su nodo maestro.
  • <token>: Reemplace esto con el token generado durante el proceso de inicialización en el nodo maestro.
  • <hash>: reemplácelo por el hash del certificado de CA del token de descubrimiento proporcionado por la salida de comando de inicio de kubeadm.

Paso 6: Verifique el estado del clúster

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

$ kubectl get pods -n kube-system
Evergreen One

Reduzca los riesgos con Evergreen//One™

El tiempo de inactividad no es una opción. Puede contar con Pure y asegurarse de que siempre estará listo para cumplir con las demandas de capacidad.

Explore Evergreen//One

Administración de un clúster de Kubernetes

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

Escalación del clúster

Kubernetes ofrece escalabilidad horizontal, lo que le permite ajustar fácilmente la cantidad de nodos de trabajadores según las demandas de su carga de trabajo.

  1. Agregar nodos (escalar hacia arriba):
    1. Prepare el nuevo nodo: Asegúrese de que el nuevo nodo cumpla con los requisitos del sistema recomendados para su versión de Kubernetes deseada. Instale el software necesario, incluido un tiempo de ejecución de contenedor como Docker o contenedor, y el agente de Kubelet. Consulte la documentación oficial de Kubernetes para conocer los pasos de instalación detallados según su sistema operativo.
    2. Únase al nodo en el clúster: Use el comando de unión 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.
      • Únase al token : Este token se generó durante la inicialización del plano de control y se proporcionó en la salida.

Este es un ejemplo de comando de unión de kubeadm:

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

  • Reemplace <master_ip_address> con la dirección IP real de su nodo maestro.
  • Reemplace <token> con el token generado durante la inicialización del plano de control.
  • Reemplace <hash> con el hash del certificado de CA del token de descubrimiento desde la salida de inicialización del plano de control.

Eliminación de nodos (escalamiento descendente):
Antes de eliminar un nodo, es fundamental drenarlo primero. El drenaje garantiza que no haya tiempo de inactividad para sus aplicaciones al desalojar con gracia los pods del nodo y programarlos en nodos saludables.

Drene el nodo: Use el comando de drenaje kubectl para drenar el nodo que desea eliminar. Este comando elimina pods del nodo mientras permite que DaemonSets (servicios de sistemas críticos) continúe ejecutándose.

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

Reemplace <node-name> con el nombre de host o la dirección IP del nodo que desea eliminar.

 

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

 

$ kubectl delete node <node-name>

Reemplace <node-name> con el nombre de host o la dirección IP del nodo que desea eliminar.

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

Cómo mantener el máximo rendimiento: Monitoreo, registro y almacenamiento

El monitoreo y el registro efectivos son cruciales para mantener su clúster Kubernetes saludable. Las herramientas como Prometheus y ELK Stack ofrecen información profunda sobre la utilización de recursos, el estado del pod y el rendimiento general, lo que le permite identificar y abordar problemas de manera proactiva antes de que afecten las aplicaciones. Kubernetes también se integra con varias soluciones de terceros para mayor flexibilidad.

La administración eficiente de datos es clave para las aplicaciones con estado. Portworx ® de Pure Storage proporciona una solución potente y nativa para 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 reprograman.
  • Ofrece protección de datos y recuperación ante desastres: Ofrece snapshots y replicación, y minimiza el tiempo de inactividad durante incidentes.
  • Simplificación de la administración: Proporciona una interfaz fácil de usar para el aprovisionamiento, el monitoreo y la administración de recursos de almacenamiento.

Conclusiones

Los clústeres de Kubernetes son fundamentales para la organización moderna de contenedores, ya que ofrecen escalabilidad mejorada, tolerancia a fallas y administración de aplicaciones simplificada. Comprender los componentes, el proceso de configuración y las prácticas de administración de los clústeres de Kubernetes es fundamental para aprovechar todo su potencial. Portworx de Pure Storage se integra sin problemas con Kubernetes, lo que proporciona capacidades de almacenamiento sólidas que mejoran la eficiencia y confiabilidad general de las cargas de trabajo en contenedores.

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

Buscar recursos y eventos clave

LIDERAZGO DE PENSAMIENTO
La carrera de la innovación.

Los últimos conocimientos y perspectivas de líderes de la industria que están a la vanguardia de la innovación en almacenamiento.

Más información
INFORME DE ANALISTAS
Planifica tu futuro ciber-resiliente

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

Lea el informe
RECURSO
El futuro del almacenamiento: Nuevos principios de la era de la AI

Aprenda cómo nuevos desafíos como la AI están transformando las necesidades de almacenamiento de datos, lo que requiere un nuevo enfoque y una aproximación más moderna para lograr el éxito.

Obtenga el libro electrónico
RECURSO
Deje de comprar almacenamiento, en lugar de eso adopte plataformas

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

Lea el informe
CONTÁCTENOS
Comuníquese con PureÍcono de información
Ícono de chat
¿Preguntas, comentarios?

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

Ícono de llave
Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
CerrarCerrar el ícono X
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.