Alan Zeichick | Escritor sénior | 5 de septiembre de 2025
Kubernetes es una plataforma de código abierto para la gestión de aplicaciones muy grandes que incluyen números elevados de servicios en contenedores. Desarrollada por los ingenieros de Google en 2014 y lanzada como plataforma de código abierto poco después, hoy en día Kubernetes es un ecosistema floreciente admitido por casi todos los proveedores de nube. Kubernetes puede usarse para gestionar aplicaciones nativas en la nube creadas con microservicios, así como aplicaciones tradicionales que se ejecutan en entorno local o en la nube.
Una pieza clave de la potencia de Kubernetes es su automatización: puede reducir de forma significativa la carga que representa gestionar aplicaciones en una red.
Kubernetes es un sistema de código abierto para el despliegue, la gestión y el escalado de aplicaciones containerizadas, en particular aplicaciones nativas en la nube desarrolladas mediante microservicios. Kubernetes, cuyo nombre se abrevia a veces a K8s, permite a los administradores agrupar contenedores para facilitar su gestión.
¿Qué hace Kubernetes? Empieza desplegando contenedores que contienen una aplicación completa o un componente de una aplicación, a menudo denominado servicio. Estos contenedores se despliegan en servidores que pueden encontrarse en una nube, en entorno local, repartidos en distintas nubes según una configuración multicloud o en una configuración híbrida de nube y entorno local.
Una vez que los contenedores están desplegados, Kubernetes ofrece capacidad de detección, permitiendo a la aplicación o servicio encontrar los servicios que necesita de otros contenedores. Kubernetes enruta el tráfico hacia el recurso adecuado bajo su control. Si un sistema está ejecutando múltiples copias de una aplicación o un servicio en contenedores, para adaptarse a los picos de demanda Kubernetes suele equilibrar la carga de forma automática.
Parte de la potencia de Kubernetes reside en su capacidad para agrupar contenedores de forma idónea para el despliegue. Por ejemplo, puede agrupar varios contenedores que comparten el mismo almacenamiento y la misma red en un pod, un término que encontrarás a menudo. También verás referencias a los nodos de Kubernetes. Estos son máquinas, ya sea servicios físicos o máquinas virtuales tradicionales, que albergan contenedores. Un grupo de nodos que ejecutan Kubernetes (esto es, un conjunto de contenedores físicos o virtuales) se denomina clúster.
Por cada contenedor, pod, nodo y clúster, Kubernetes gestionará los recursos de almacenamiento, detectará y reiniciará los contenedores con fallos (un proceso llamado "reparación") e incluso aplicará protocolos de seguridad en una aplicación distribuida. Puede configurarse para gestionar contraseñas, tokens de seguridad y claves de cifrado, facilitando así la protección de activos críticos.
El desarrollo de la plataforma Kubernetes está supervisado por Cloud Native Computing Foundation (CNCF).
Con frecuencia, los contenedores sustituyen a otro modelo de despliegue en la nube: las máquinas virtuales (VM, por sus siglas en inglés). Los contenedores son más ligeros que las VM porque usan el sistema operativo y los controladores de dispositivo subyacentes del servidor host. Por el contrario, las VM son más grandes y requieren más recursos de procesamiento, ya que cada una contiene su propio sistema operativo. Así pues, un servidor puede ejecutar más contenedores que VM y, lo que es más importante, puede dedicar más recursos de memoria y procesador a ejecutar aplicaciones en lugar de mantener múltiples instancias de sistema operativo, una por cada VM. Aunque existen casos específicos que requieren VM, los contenedores ofrecen un modelo mucho más eficiente para la mayoría de despliegues de aplicaciones de nube.
Aunque Kubernetes y los contenedores estén relacionados, es mejor considerarlos como tecnologías complementarias. Kubernetes es una plataforma de gestión para contenedores que se suele usar para despliegues a gran escala que alcanzan los cientos o miles de contenedores. Los contenedores ponen todo el código y las dependencias de una funcionalidad, ya sea un microservicio o una aplicación completa, en un formato único ejecutable.
Kubernetes es una herramienta para gestionar un número elevado de contenedores a la vez, por lo general en la nube. Kubernetes, al que a veces se hace referencia como el sistema operativo de la nube, ayuda a las organizaciones a gestionar contenedores a gran escala.
Conclusiones clave
Kubernetes es una plataforma que automatiza el despliegue, el escalado y la gestión de contenedores. Kubernetes también tiene capacidad para reparar contenedores, es decir, para detectar si tienen fallos y arreglarlos. La clave de Kubernetes es la orquestación: al igual que el director de una orquesta sinfónica con sus músicos, sabe lo que se debe hacer; mantiene todos los contenedores en su lugar y se asegura de su correcto funcionamiento; y toma medidas si algo va mal.
Y al igual que el director de una sinfonía trabaja a partir de una partitura que indica cuándo tienen que tocar el piano, los violonchelos o la sección de viento, Kubernetes cuenta con un documento en el que se explica el estado deseado para los contenedores de una aplicación. Este documento, llamado archivo de configuración, describe las funciones requeridas para que la aplicación se ejecute y especifica qué contenedores pueden ofrecer esas funciones. El archivo de configuración también incluye una lista de los servidores, dispositivos de almacenamiento, redes y otros equipos físicos a disposición de los contenedores de la aplicación.
Cuando se inicia una aplicación, Kubernetes carga los contenedores necesarios en los servidores disponibles según el archivo de configuración y, a continuación, empieza a ejecutar el software en esos contenedores. Supervisa el consumo de recursos de cada servidor (o nodo), asegurándose de que los sistemas no se sobrecarguen. En caso de que esto último suceda, desplaza contenedores a un servidor menos ocupado iniciando un nuevo contenedor y parando el antiguo. Si un contenedor está sobrecargado, Kubernetes inicia una copia idéntica de ese contenedor en otro servidor y configura automáticamente un equilibrador de carga para repartir la carga de trabajo entre ambos. Si la demanda se incrementa, inicia otro contenedor, y así sucesivamente según sea necesario. Más adelante, si la carga de trabajo se reduce, Kubernetes apaga cualquier contenedor innecesario para ayudar a reducir costos y liberar recursos de servidor para otras tareas.
Cuando un contenedor falla, Kubernetes inicia rápidamente un nuevo contenedor en otro servidor y redirige el tráfico de red fuera del área problemática, ofreciendo un failover rápido.
Imagina que tienes una aplicación que requiere cientos o miles de contenedores. Cada uno de ellos proporciona los servicios que la aplicación necesita. Los administradores de sistemas podrían desplegar y gestionar de forma manual los contenedores, posiblemente con ayuda de herramientas de automatización para tareas específicas como el equilibrado de carga o la detección de fallos. De hecho, incluso existen herramientas para gestionar contenedores en despliegues a pequeña escala. Por lo general, recurren a ellas los desarrolladores de software y equipos de DevOps cuando crean y prueban software en contenedores.
Sin embargo, sin un sistema de orquestación más completo, las necesidades de administración del sistema acaban siendo abrumadoras.
La belleza de Kubernetes es que se trata de una plataforma única que gestiona las tareas de automatización desde el despliegue de contenedores hasta su escalado, pasando por la resolución de fallos. Además, Kubernetes es una plataforma de código abierto ampliamente soportada, incluso por los principales proveedores de nube. En pocas palabras, es ubicua. Esto hace de Kubernetes el sistema preferido para gestionar grandes aplicaciones empresariales en contenedores.
Cuando una organización decide containerizar sus aplicaciones, adoptar Kubernetes para orquestar dichos contenedores es la opción más lógica, especialmente si consideramos sus amplios beneficios.
Los ingenieros de Google que crearon Kubernetes eligieron ese nombre basándose en la palabra para "piloto" o "timonel" (la persona que gobierna el timón de una nave) en griego antiguo porque desplaza y gestiona flotas de contenedores. Y al igual que un buque portacontenedores, Kubernetes depende del el trabajo conjunto de muchos componentes para llevar su carga de datos allí donde debe estar. Estos son algunos términos que encontrarás habitualmente en las discusiones sobre contenedores y sobre la plataforma de orquestación Kubernetes.
Kubernetes no es una mera plataforma de gestión de contenedores: es una herramienta de orquestación sofisticada que automatiza y simplifica todo el ciclo de vida de las aplicaciones, desde el diseño hasta el despliegue pasado por el uso en producción. Su robusto conjunto de funciones ayuda a gestionar de forma eficiente aplicaciones complejas y distribuidas. Estas son algunas de las características clave de Kubernetes:
Aunque Kubernetes se ha ido puliendo a lo largo de muchos años, su curva de aprendizaje sigue siendo pronunciada. Aun así, resulta mucho más beneficioso dedicar tiempo a aprender Kubernetes que usar otros métodos para gestionar grandes aplicaciones distribuidas. Estos son algunos desafíos que deben tomarse en cuenta:
Las empresas utilizan Kubernetes para muchos tipos de aplicaciones: comercio electrónico, fabricación, investigación, finanzas, servicios públicos... Se encuentra básicamente en todas las industrias. Muchas aplicaciones distribuidas grandes que usan contenedores pueden beneficiarse de la orquestación y la automatización de Kubernetes. Estos son algunos escenarios comunes en los que Kubernetes puede dar lo mejor de sí.
La confluencia de Kubernetes y la IA puede resultar transformadora para una empresa, ya que Kubernetes puede desempeñar un papel clave en la gestión y la orquestación de las cargas de trabajo de IA en la nube. En particular, Kubernetes proporciona una plataforma flexible y robusta para el entrenamiento y el despliegue de modelos de IA, lo que ofrece varias ventajas:
La adopción generalizada de Kubernetes en la última década ha llevado a la emergencia de un ecosistema floreciente de herramientas, servicios y tecnologías de apoyo. Este ecosistema mejora aún más las capacidades de Kubernetes, ofreciendo a las organizaciones un abanico de opciones para personalizar su infraestructura y sus prácticas de desarrollo. Las principales categorías de este ecosistema incluyen:
Cualquier discusión sobre el ecosistema de Kubernetes estaría incompleta si no se mencionara KubeCon, la conferencia anual para desarrolladores y usuarios de Kubernetes organizada por Cloud Native Computing Foundation (CNCF). Desde la primera KubeCon de 2015, a la que asistieron 500 personas, el evento ha crecido de forma sustancial. En 2024, la conferencia de Salt Lake City atrajo a más de 9000 desarrolladores e ingenieros.
Podría llenarse un libro con las mejores prácticas de Kubernetes, y de hecho muchas de ellas se han puesto por escrito. No lo dudes: Kubernetes es complejo. Sin embargo, seguir estas mejores prácticas puede ayudar a las empresas a utilizar esta plataforma con éxito
OCI Kubernetes Engine (OKE) es un servicio de orquestación de contenedores que puede reducir el tiempo y el costo de creación de aplicaciones nativas en la nube. OKE ayuda a simplificar las operaciones de Kubernetes en entorno empresarial a gran escala. Te permite desplegar y gestionar de forma sencilla cargas de trabajo que hacen un uso intensivo de recursos con escalado, parcheado y actualizaciones automáticos. OKE ofrece:
La capacidad de la plataforma Kubernetes para orquestar y automatizar el despliegue y la gestión de aplicaciones ha revolucionado la forma en que las aplicaciones se ejecutan en la era nativa en la nube. A medida que Kubernetes evoluciona y gana impulso, se está volviendo aún más relevante. Las organizaciones que adoptan Kubernetes pueden conseguir una ventaja competitiva significativa, por lo que entender esta tecnología es vital tanto para los desarrolladores como para los líderes empresariales.
Kubernetes es importante para el desarrollo nativo en la nube, clave para conseguir aplicaciones más resilientes, escalables y ágiles, sin importar si se ejecutan en la nube, en entorno local o en un modelo híbrido o multicloud.
¿Por qué Kubernetes es un componente clave de la estrategia de nube empresarial?
Kubernetes es fundamental porque es la solución que usan las empresas para desplegar, escalar y gestionar sus aplicaciones distribuidas, especialmente aquellas que se ejecutan en la nube. La automatización de Kubernetes mejora la confiabilidad de las aplicaciones, optimizando al mismo tiempo el uso de recursos, lo que permite reducir los costos.
¿Qué factores deben tener en cuenta las empresas cuando adoptan Kubernetes a escala?
Deben tomarse en cuenta dos factores principales. El primero es la preparación de la organización: ¿están listos tus equipos de ingeniería y desarrollo para este modelo de desarrollo y despliegue de aplicaciones? El otro es técnico: ¿es tu enfoque de diseño el más adecuado para diseñar y desplegar Kubernetes y contenedores de forma segura, estable y conforme a los requisitos de gobernanza?
¿Cuáles son las principales consideraciones económicas que deben tomar en cuenta las empresas que ejecutan Kubernetes a escala?
Kubernetes puede ayudar a reducir costos optimizando el uso de recursos de nube y liberando recursos como servidores y almacenamiento cuando no se necesitan. No obstante, el entrenamiento, las herramientas y la optimización de tu red y tus modelos de aplicación para aprovechar al máximo los recursos disponibles implican costos.
¿Cómo pueden las empresas garantizar una transición a Kubernetes sin problemas desde una infraestructura tradicional?
¡Es un gran cambio! Empieza introduciendo Kubernetes para una aplicación pequeña que tal vez ya se ejecute en uno o unos pocos contenedores. Considera comenzar por un servicio de Kubernetes basado en la nube que gestione el plano de datos por ti en lugar de intentar aprender, desplegar y operar los distintos elementos por tu cuenta. Experimenta con las actualizaciones, las restauraciones, el monitoreo, fallos deliberados, etc. para ayudar a tu equipo a conseguir la experiencia necesaria para abordar proyectos de mayor envergadura, como convertir una aplicación monolítica en una basada en microservicios.