Tabla de contenidos
Kubernetes se utiliza para orquestar sistemas de contenedores. La plataforma de código abierto automatiza la configuración, operación y escalado de aplicaciones en contenedores.
Kubernetes es inicialmente la ortografía en inglés de una palabra griega que los desarrolladores del sistema de orquestación de contenedores del mismo nombre traducen libremente con timonel. Por tanto, el nombre encaja con el lenguaje visual elegido para tales proyectos en el transporte de carga. Docker es el nombre en inglés de los estibadores o trabajadores portuarios.
El simbolismo se refleja en el logo de Kubernetes, que consiste en un volante de siete radios. El número siete se refiere a un personaje de Star Trek cuyo nombre sirvió como título provisional del proyecto.
Un nombre con historia de TI
Kubernetes es también la raíz de la palabra cibernética y, por lo tanto, también el origen de varias formaciones de palabras con «cyber». La palabra se remonta a un libro del matemático estadounidense Norbert Wiener de 1948 y describe el control y la comunicación en la vida así como en sistemas artificiales.
¿Qué papel juega Kubernetes en la contenedorización?
Si ve una revolución de TI industrial en la contenedorización, en la que reemplaza los servidores instalados manualmente con unidades generadas y mantenidas por máquinas, entonces Kubernetes es la línea de ensamblaje que regula el proceso de producción y marca el ritmo. Esta tarea se llama orquestación. Sin embargo, Kubernetes utiliza un enfoque ligeramente diferente al de los sistemas de orquestación típicos.
Más que orquestación
Los desarrolladores de Kubernetes describen la diferencia con un sistema de orquestación regular de tal manera que su software no implementa un flujo de trabajo fijo, sino que consiste en un conjunto de procesos de control independientes que monitorean continuamente el estado actual del sistema de contenedores y lo cambian hacia el objetivo. Expresar. La forma en que los contenedores resuelven una determinada tarea es responsabilidad de estos procesos. Kubernetes tampoco requiere una instancia de control central. Según los desarrolladores, Kubernetes efectivamente hace que la orquestación sea superflua.
Kubernetes en comparación
Una diferencia fundamental entre Kubernetes y otras herramientas de orquestación importantes es el tipo de entornos de virtualización que pueden administrar. Si bien Docker Swarm Mode como herramienta de orquestación nativa de Docker requiere precisamente este entorno de contenedor, Kubernetes también admite otros sistemas de virtualización basados en contenedores, incluso como entornos heterogéneos. Apache DCOS también controla y controla los recursos informáticos no en contenedores.
La gama de servicios
La herramienta de código abierto Kubernetes proporciona todas las funciones para la gestión y el control del uso de aplicaciones contenedoras. Esto incluye las siguientes características:
- Automatización del uso de contenedores y despliegue de software
- Optimización del uso de los recursos informáticos
- Numerosas opciones para el almacenamiento de datos permanente (almacenamiento persistente)
- Descubrimiento de servicios integrados
- Escalado automático
- Alta disponibilidad
Automatización del uso de contenedores y despliegue de software
Kubernetes resume las imágenes de contenedores, su configuración y la cantidad de instancias requeridas en las implementaciones, según las utiliza el sistema de orquestación. Kubernetes monitorea automáticamente los parámetros de una implementación. La herramienta asegura que la cantidad deseada de contenedores esté funcionando en todo momento. Kubernetes distribuye los cambios en el software o la configuración con un lanzamiento. Este proceso se puede pausar, continuar y deshacer (deshacer).
Optimización del uso de los recursos informáticos
Kubernetes utiliza los contenedores de una implementación de forma independiente cuando los recursos adecuados son gratuitos. El usuario puede definir valores mínimos y máximos para el uso de recursos (tiempo de cálculo, espacio de almacenamiento) para los contenedores con el fin de proporcionar un marco para la herramienta de orquestación.
Numerosas opciones para el almacenamiento de datos permanente (almacenamiento persistente)
Los contenedores son apátridas. Para el almacenamiento permanente de la configuración y los datos del usuario, Kubernetes ofrece interfaces a numerosos servicios como EBS de Amazon Web Services o Google Cloud Platform.
Descubrimiento de servicios integrados
Kubernetes detecta automáticamente las conexiones de red necesarias a Internet u otros contenedores. La herramienta no solo abre estas conexiones, sino que también distribuye automáticamente el tráfico de datos a los contenedores adecuados (equilibrio de carga). Ya está integrado un descubrimiento de servicios completamente funcional utilizando DNS.
Escalado automático
Kubernetes permite que el sistema de contenedores se adapte a las cargas cambiantes y los recursos informáticos disponibles al escalar automáticamente el uso del contenedor. Por lo tanto, para satisfacer las crecientes necesidades, es suficiente proporcionar los recursos adecuados. No es necesario adaptar la aplicación para ello. De este modo, el rendimiento de la aplicación se puede incrementar de forma completamente transparente para el cliente.
Alta disponibilidad
Las características de alta disponibilidad también son un factor esencial para un funcionamiento sin problemas. La tecnología de contenedores ofrece una base excelente para el uso redundante de recursos. Con Cluster Federation, Kubernetes extiende estas capacidades a sistemas de contenedores completos.
Terminología especial de Kubernetes
De acuerdo con sus propiedades especiales como sistema de orquestación, Kubernetes a veces también usa sus propias convenciones de nomenclatura. En este lenguaje, un nodo es un sistema informático, físico o virtual, que está configurado para ejecutar contenedores bajo el control de Kubernetes.
Un clúster es un sistema general compuesto por nodos. La administración se realiza a través del plano de control de Kubernetes, que es un software como kubectl por un lado, y un conjunto de API para interactuar con el sistema de contenedores por el otro. Kubernetes agrupa contenedores en el mismo nodo en pods. Un pod también puede constar de un único contenedor y es la unidad organizativa más pequeña de Kubernetes.