Operar cientos de miles de contenedores en un sistema puede volverse inmanejable y requiere una solución de administración de orquestación.
Ahí es donde entra en juego la orquestación de contenedores, lo que permite a las empresas gestionar grandes volúmenes a lo largo de su estilo de vida, proporcionando:
- Suministro
- Redundancia
- Monitorización de comprobación de estado
- asignación de recursos
- Escalado y equilibrio de carga
- Movimiento entre hosts físicos
Aunque existen otras plataformas de orquestación de contenedores (por ejemplo, Apache Mesos, Nomad, Docker Swarm), Kubernetes se ha convertido en el estándar del sector.
La arquitectura de Kubernetes consiste en clústeres en ejecución que permiten que los contenedores se ejecuten en varias máquinas y entornos. Cada clúster suele estar formado por nodos de trabajo, que ejecutan las aplicaciones en contenedores, y nodos del plan de control, que controlan el clúster. El plano de control actúa como orquestador del clúster de Kubernetes. Incluye varios componentes: el servidor de API (gestiona todas las interacciones con Kubernetes), el gestor de control (gestiona todos los procesos de control), el gestor de controladores de nube (la interfaz con la API del proveedor de servicios en la nube), etc. Los nodos de trabajo ejecutan contenedores mediante entornos de tiempo de ejecución de contenedores como Docker. Los pods, las unidades implementables más pequeñas de un clúster, contienen uno o más contenedores de aplicaciones y comparten recursos, como almacenamiento e información de red.
Kubernetes permite a los desarrolladores y operadores declarar el estado deseado de su entorno de contenedor general a través de archivos YAML. Después, Kubernetes realiza todo el trabajo de procesamiento para establecer y mantener ese estado, con actividades que incluyen la implementación de un número específico de instancias de una aplicación o carga de trabajo determinada, el reinicio de esa aplicación si falla, el equilibrio de carga, el escalado automático, las implementaciones sin tiempo de inactividad y más. La orquestación de contenedores con Kubernetes también es crucial para la integración y la entrega continuas (CI/CD) o el pipeline de DevOps, lo que sería imposible sin la automatización.
En 2015, Google donó Kubernetes a la Cloud Native Computing Foundation (CNCF)8, el centro de computación nativa en la nube de código abierto y neutral para proveedores operado bajo los auspicios de la Linux Foundation. Desde entonces, Kubernetes se ha convertido en la herramienta de orquestación de contenedores más utilizada para ejecutar cargas de trabajo basadas en contenedores en todo el mundo. En un informe del CNCF9, Kubernetes es el segundo proyecto más grande de código abierto del mundo (después de Linux) y la principal herramienta de orquestación de contenedores para el 71 % de las empresas Fortune 100.