Operar cientos de miles de contenedores en un sistema puede volverse inmanejable y requiere una solución de gestió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 según su estilo de vida y brinda:
- Aprovisionamiento
- Redundancia
- Monitoreo de salud
- Asignación de recursos
- Escalado y equilibrio de carga
- Moverse entre hosts físicos
Mientras que existen otras plataformas de orquestación de contenedores (por ejemplo, Apache Mesos, Nomad, Docker Swarm), Kubernetes se ha convertido en el estándar de la industria.
La arquitectura de Kubernetes consiste en ejecutar clústeres que permiten que los contenedores se ejecuten en múltiples máquinas y entornos. Cada clúster suele constar de nodos trabajadores, que ejecutan las aplicaciones en contenedores, y nodos de plan de control, que controlan el clúster.
El plan 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 administrador de control (maneja todos los procesos de control), el administrador del controlador de la nube (la interfaz con la API del proveedor de la nube), etc. Los nodos de trabajador ejecutan contenedores mediante tiempos de ejecución de contenedores, como Docker. Los pods, las unidades desplegables más pequeñas de un clúster, contienen uno o más contenedores de aplicaciones y comparten recursos, como información de almacenamiento y redes.
Kubernetes permite a los desarrolladores y operadores declarar el estado deseado de su entorno general de contenedores a través de archivos YAML. Luego, Kubernetes hace todo el trabajo de procesamiento para establecer y mantener ese estado, con actividades que incluyen desplegar una cantidad específica de instancias de una aplicación o carga de trabajo determinada, reiniciar esa aplicación si falla, equilibrar la carga, escalar de manera automática, desplegar sin tiempo de inactividad, entre otros aspectos.
La orquestación de contenedores con Kubernetes también es crucial para la integración y la entrega continuas (CI/CD) o el proceso de DevOps, lo cual sería imposible sin la automatización.
En 2015, Google donó Kubernetes a Cloud Native Computing Foundation (CNCF)8, el centro de computación nativa de la nube de código abierto e independiente del proveedor operado bajo los auspicios de Linux Foundation. Desde entonces, Kubernetes se convirtió en la herramienta de orquestación de contenedores más empleada para ejecutar cargas de trabajo basadas en contenedores en todo el mundo.
Kubernetes es el segundo proyecto de código abierto más grande del mundo (luego de Linux) y la principal herramienta de orquestación de contenedores para el 71 % de las empresas de Fortune 100.