Un clúster de Kubernetes consta de dos tipos de nodos: nodos maestros y nodos de trabajador. Los nodos maestros son los componentes del plano de control responsables de administrar el estado general del clúster, como mantener el estado deseado del clúster, programar e implementar aplicaciones y administrar las redes del clúster. En un clúster de Kubernetes de alta disponibilidad, puede haber varios nodos maestros para la tolerancia a fallos.
Los nodos de trabajador, por otro lado, son los recursos de computación en los que se ejecutan las aplicaciones en contenedores. Alojan pods, que contienen al menos un contenedor, y son las unidades más pequeñas que se pueden implementar en Kubernetes. Los nodos de trabajo se comunican con el nodo maestro para garantizar que todo funcione según lo previsto.
Kubernetes también tiene dos tipos de componentes: Componentes del plano de control y componentes del nodo. Los componentes del plano de control son los siguientes.
Los nodos individuales, por otro lado, involucran los componentes que se enumeran a continuación.
Ambas categorías, combinadas dentro de un clúster, funcionan juntas para proporcionar una plataforma coherente y confiable para implementar y administrar aplicaciones en contenedores. Más específicamente, los clústeres de Kubernetes proporcionan la abstracción y la automatización necesarias para administrar aplicaciones en contenedores a escala, lo que permite a los desarrolladores centrarse en el código y los equipos de operaciones para administrar la infraestructura de manera más eficiente.
Kubernetes se instala, configura y mantiene casi en su totalidad con la API de Kubernetes. Esta API expone la funcionalidad del sistema y permite la administración de clústeres y nodos mediante programación. Hay varias formas de trabajar con las API de Kubernetes, entre las que se incluyen:
En Kubernetes, el estado deseado es una representación declarativa del estado esperado de los recursos dentro del clúster. Al actualizar pods, implementaciones o dispositivos, el estado se define mediante un archivo de configuración YAML o JSON. Kubernetes trabaja entonces para conciliar el estado real de los recursos con el especificado en el archivo de configuración.
El estado deseado incluye información como la imagen del contenedor, el número de réplicas para una implementación y las variables de entorno para los pods. También incluye el tipo de balanceo de carga utilizado para un servicio. Los controladores de Kubernetes supervisan continuamente estos archivos para realizar ajustes que coincidan con el estado deseado del contenedor.
Este enfoque declarativo proporciona varias ventajas, incluida la capacidad de Kubernetes para autorrecuperarse cuando un pod se bloquea o un nodo se vuelve inalcanzable. Kubernetes toma automáticamente medidas correctivas para restaurar el estado deseado. También ayuda a mantener los recursos del clúster en línea con los flujos de trabajo de control de versiones conocidos, lo que hace que las reversiones sean muy sencillas.
Aunque pueda parecer complicado al principio, Kubernetes proporciona potentes abstracciones y una API coherente que facilita mucho la vida cuando se trata de gestionar aplicaciones a escala. Dicho esto, configurar un clúster de Kubernetes es único en lo que respecta a la infraestructura, por lo que es útil obtener una visión general del proceso. Sin embargo, antes de sumergirse, es útil comprender los requisitos de implementación.
Kubernetes puede ejecutarse en una gran variedad de configuraciones de hardware y VM. Los requisitos exactos dependen de la escala y de la demanda de recursos de sus aplicaciones. Sin embargo, para un clúster mínimo, cada nodo debe tener al menos 2 núcleos de CPU y 2 GB de RAM, una conexión de red estable y de alto rendimiento y suficiente almacenamiento en forma de almacenamiento local, NAS o una opción de almacenamiento basada en la nube, como Amazon EBS, Google Persistent Disk y Azure Disk.
Los clústeres de Kubernetes pueden implementarse prácticamente en cualquier entorno, incluso en las instalaciones locales, en una nube pública o mediante un servicio de Kubernetes gestionado, como Google Kubernetes Engine, Amazon Elastic Kubernetes Service o Azure Kubernetes Service. Seguir la ruta administrada simplifica el proceso, aunque Kubernetes autogestionado ofrece más control sobre la infraestructura.
Es necesario instalar kubectl, que es la herramienta de línea de comandos que interactúa con la API de Kubernetes. Se conecta a través de HTTP, y se instala desde una máquina local y se configura para conectarse a un clúster.
Las aplicaciones en contenedores de Kubernetes se describen mediante archivos de configuración declarativos YAML o JSON, que definen el estado deseado de los componentes de la aplicación. Los componentes principales son:
Los clústeres se implementan utilizando kubectl para aplicar los archivos de configuración, que indica a Kubernetes que cree los recursos necesarios para lograr el estado deseado de la aplicación. Por su parte, la configuración real requiere mucho ajuste.
Tenga en cuenta que estos son pasos de alto nivel para implementar y configurar un clúster de Kubernetes. El proceso exacto variará en función de la opción de implementación elegida, la infraestructura y los requisitos específicos.
Aunque Kubernetes tiene una curva de aprendizaje, sus potentes abstracciones y herramientas facilitan la gestión de aplicaciones en contenedores a escala. Con la práctica y la experiencia, descubrirá que trabajar con Kubernetes se vuelve más intuitivo con el tiempo. También hay muchos recursos disponibles en línea para ayudarlo a aprender y dominar esta poderosa tecnología de contenedorización.
Para la monitorización, Kubernetes proporciona herramientas integradas que le ayudan a mantener la salud y el rendimiento del clúster. Mientras tanto, también existen herramientas y plataformas externas y de terceros que ofrecen monitorización, registro y alertas avanzados.
Kubernetes permite escalar fácilmente hacia arriba o hacia abajo las aplicaciones en función de la demanda, ya sea de forma manual o automática, mediante el escalador automático de pods horizontales, también conocido como HPA. Puede garantizar la longevidad del rendimiento de su aplicación manteniéndola segura y actualizada. Puede realizar actualizaciones continuas de la aplicación sin tiempo de inactividad actualizando la configuración de la implementación.
Embarcarse en su viaje hacia Kubernetes puede parecer desalentador, pero con el enfoque y los recursos adecuados, puede convertirse rápidamente en un experto. Empiece por explorar las soluciones comunes y las mejores prácticas dentro del ecosistema de Kubernetes. Considere las necesidades específicas de su organización y cómo Kubernetes, junto con la solución de backup nativa de Veeam, puede ayudar a abordarlas.
Cuando esté listo para empezar, eche un vistazo a Veeam Kasten de Veeam, una solución de backup nativa de última generación diseñada específicamente para Kubernetes. Registre la versión comunitaria gratis y empiece a crear una estrategia de backup hoy mismo. Recuerde que un entorno de Kubernetes bien orquestado no está completo sin una protección de datos confiable. Haga de Veeam su compañero de confianza en su aventura de contenerización con Kubernetes.
Ver una demostración
Descubra cómo puede lograr la resiliencia de datos frente a cualquier amenaza con Veeam
Foros de investigación y desarrollo de Veeam
Obtenga ayuda para sus productos y software de Veeam