Artículos de Tecnología > DevOps

¿Qué es Kubernetes?

Nico Steppat
Nico Steppat

Para comprender Kubernetes y lo que es, comencemos hablando brevemente sobre Docker. Docker es la herramienta estándar para implementar una aplicación utilizando contenedores. En otras palabras, Docker se basa en el formato más popular para empaquetar una aplicación y es el motor de contenedores más utilizado.

La gran ventaja de un contenedor es encapsular todas las dependencias necesarias para ejecutarlo, como bibliotecas, el tiempo de ejecución y el código de la aplicación. Todo esto en un solo paquete llamado imagen, que se puede versionar y distribuir fácilmente.

img1

Docker ha revolucionado la forma de distribuir y ejecutar aplicaciones. Sin embargo, una vez que se tiene un contenedor en ejecución, todavía hay otras cuestiones por resolver. Por ejemplo, si un contenedor falla durante la ejecución, ¿cómo garantizar que se reinicie automáticamente (alta disponibilidad)? Y si necesitamos 4 contenedores, ¿cómo automatizar y asegurar que siempre haya 4 en ejecución (escalabilidad)? Además, si queremos algo elástico, como tener al menos 1 contenedor pero con la posibilidad de crecer hasta 5 en ejecución, ¿cómo hacerlo? Estas son solo algunas de las preguntas planteadas; hay muchas otras (red, volúmenes, monitoreo, actualizaciones, etc.) que Docker por sí solo no resuelve...

La preocupación aumenta aún más si consideramos una arquitectura basada en Microservicios. Es decir, la aplicación que antes estaba contenida en un solo contenedor ahora se divide en varios que deben interactuar de manera confiable pasando por varios hosts. Y, por supuesto, garantizando alta disponibilidad y escalabilidad. La complejidad solo aumenta...

Observen aquí la necesidad de tener un "gestor de contenedores", alguien que esté "al tanto" de los contenedores en ejecución, asegurando que el sistema en su conjunto continúe funcionando según lo planeado. Teniendo esto en cuenta, ¿no existe una herramienta que asuma esas responsabilidades? ¿Acaso Google no tiene algo para ayudar? Quizás un proyecto de código abierto, muy popular y que también funcione en los principales proveedores de la nube.

img2

Bueno, el nombre del artículo ya dio una pista, pero lo que estamos buscando se llama Kubernetes, creado por Google con grandes contribuciones de Red Hat y hoy en día es uno de los proyectos de código abierto más populares en Github. El nombre Kubernetes suena un poco extraño, ya que es una palabra griega que significa "timonel" o "piloto" (el barco de carga pilotado por Kubernetes).

img3

Kubernetes viene con una gran experiencia de Google y no deja de crecer en funcionalidades y usuarios. Es él quien gestiona los contenedores en ejecución, por lo que también se le llama Orquestador de Contenedores. A través de él, podemos definir el estado de un sistema completo, por ejemplo, basado en Microservicios, siguiendo las mejores prácticas de infraestructura como código, permitiendo el equilibrio de carga, alta disponibilidad, actualizaciones por lotes, rollbacks y mucho más.

Hoy en día, los principales proveedores de la nube como Azure, AWS, IBM, Red Hat o Google brindan soporte a Kubernetes. Además, existe una implementación local llamada Minikube que simula un clúster Kubernetes, ideal para pruebas y estudios. Lo más interesante es que las configuraciones locales, que definen el estado de la aplicación, también se ejecutan en Kubernetes en la nube. Es decir, podemos probar el orquestador localmente usando Minikube y luego publicar el sistema en AWS o Azure con solo algunas modificaciones.

Finalmente, es importante destacar que Kubernetes no es el único orquestador de contenedores en el mercado. Hay una solución de la propia empresa Docker llamada Docker Swarm con el mismo propósito, gestionar y cuidar los contenedores en ejecución (la segunda imagen es el logotipo de Docker Swarm). Cuál de los dos orquestadores es mejor o más fácil de usar es otra discusión, pero el mercado parece adoptar más a Kubernetes que a Docker Swarm.

Este articulo fue adecuado para Alura Latam por: Adriana Oliveira

Artículos de Tecnología > DevOps

En Alura encontrarás variados cursos sobre DevOps. ¡Comienza ahora!

Precios en:
USD
  • USD
  • BOB
  • CLP
  • COP
  • USD
  • PEN
  • MXN
  • UYU

Semestral

  • 273 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 6 meses
US$ 65.90
un solo pago de US$ 65.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Anual

  • 273 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 12 meses
US$ 99.90
un solo pago de US$ 99.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Acceso a todos
los cursos

Estudia las 24 horas,
dónde y cuándo quieras

Nuevos cursos
cada semana