Kubernetes for dummies. Explicado en 10 minutos

Desde hace ya un tiempo se lleva hablando de los Dockers como sistemas de contenerización muy potentes, te dejo aquí algunos enlaces sobre Dockers:

Pero hace no mucho, ha llegado al mundo Kubernetes, la tecnología de contenedores de Google (para trabajar en conjunto con Docker).
Mientras Docker proporciona la gestión del ciclo de vida de los contenedores, Kubernetes lo lleva al siguiente nivel, proporcionando orquestación y gestión de grupos de contenedores.

Pero empecemos por el principio… ¿Qué es Kubernetes?

Kubernetes es un sistema open source (GitHub) creado por Google para la gestión de aplicaciones en contenedores, un sistema de orquestación para contenedores Docker, permitiendo acciones como programar el despliegue, escalado y la monitorización de nuestros contenedores, entre muchas otras más.
Te dejo aquí la documentación oficial sobre Kubernetes, y un enlace a los conceptos claves para empezar a conocer los conceptos básicos de Kubernetes, y que te vayan sonando términos como “clúster”, “node”, “pod”, entre otros, para entrar en materia.
Google lo ha utilizado en su mayoría para sus propios productos como son Gmail, el buscador, Drive, Maps, entre otros. Su objetivo es el uso de los servicios en la nube, pero sin estar limitado sólo al ámbito de Google, puesto que también permite la supervisión de servidores que están disponibles en servicios de la competencia, como Amazon o Rackspace.
El factor más importante que diferencia a Kubernetes de las demás soluciones de cómputo en la nube, es que fue construido para trabajar con Docker, como ya adelantaba antes. Kubernetes ofrece una manera de empaquetar las aplicaciones de software en sus propios «contenedores» para trasladarlos fácil y rápidamente a cualquier equipo y ejecutarlos.
Utilizando esta herramienta, podemos ver más de cerca todo esto como un inmenso clúster orientado a aplicaciones donde desacoplar nuestras aplicaciones. Para quien maneje más Docker, Kubernetes es similar a Docker Swarm, que es una herramienta nativa que permite construir un clúster de máquinas Docker. Veamos más sobre esto….

Kubernetes vs Docker Swarm

Kubernetes y Docker Swarm son probablemente las dos herramientas más utilizadas para desplegar contenedores dentro de un clúster. Ambos son creados como herramientas auxiliares que se pueden utilizar para administrar un grupo de contenedores y la orquestación de todos los servidores como una sola unidad. Sin embargo tienen un enfoque diferente. Veamos cada uno por separado…

Kubernetes

Desde el principio, Kubernetes fue diseñado para ser un entorno para la creación de aplicaciones distribuidas de contenedores. El objetivo principal de Kubernetes es un sistema para la construcción, el funcionamiento y la gestión de sistemas distribuidos.
Además se basa en la experiencia de muchos años de Google trabajando con los contenedores de Linux. Es, en cierto modo, una réplica de lo que Google ha estado haciendo durante mucho tiempo, pero, esta vez, adaptado a Dockers, entonces aporta esa experiencia en la forma de organizar y desplegar una aplicación en contenedores.
Otra buena característica de Kubernetes es que se puede configurar el controlador para mantener activos el mismo número de contenedores, es decir, si por algún motivo se detuviese algún contenedor, se creará un nuevo contenedor con una copia casi exacta, del 99%.
Y por último (que no quiero decir que no tenga más características) es el escalado ya sea “hacia arriba” o “hacia abajo”; con Kubernetes es fácil, solo se tiene que especificar la cantidad de nuevas aplicaciones y si quieres hacia arriba o hacia abajo a través de un comando.
Vamos ahora con Docker Swarm.

Docker Swarm

Docker Swarm es la herramienta nativa para el cluster de Docker. Con Docker Swarm tenemos lo que llamaremos Swarm Master que será el responsable del cluster, también tendremos nodos que debe ser accesible por el Master y cada uno de ellos contendrá uno o varios contenedores.
Al contrario que Kubernetes, Swarm es un “esfuerzo” por parte de Docker para extender la API de Docker existente para hacer que un conjunto de máquinas se vean como una sola API de Docker.
A raíz de esto, hay mucho debate con que la API de un nodo es insuficiente para un API de clústers. Puedes leer esta discusión aquí y aquí.

Terminando…

Aunque cada día existen más herramientas similares como por ejemplo Apache Mesos (la herramienta de código abierto que actualmente utiliza Twitter), el hecho de que Kubernetes haya sido desarrollado por Google le otorga más exposición y credibilidad, lo que tendrá un gran potencial en este tipo de tecnologías.
Para acabar y a modo de curiosidad el nombre de Kubernetes es originario del griego y significa «piloto», y es la raíz de «gobernador» y «cibernético». También podemos encontrar Kubernetes con la abreviatura K8S derivada de la sustitución de las 8 letras «ubernet» con un 8, es decir, K (kubernet) + 8 (sustitución a las letras ubernet) + S (es). Lo puedes encontrar en la documentación de Kubernetes.

11 comentarios en “Kubernetes for dummies. Explicado en 10 minutos”

  1. Una explicación genial de la tecnología para los que nos estamos adentrando en ella. Actualmente empezando el curso de introducción a la infraestructura en la nube de edX, gratuito y con certificación de pago. Saludos y que continúen los éxitos.

  2. Nos ayudan a spamear de basura digital y ofuscar los links de interés.
    Por cierto muy bueno lo de las certificaciones en Git y GitHub, si no existen…

  3. Muchas gracias por la explicación me ha ayudado mucho a entender mejor que es kubernetes, en poco tiempo debo aprender a utilizar herramientas como Dockers y Kubernetes. Y tener una base es fundamental

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Share This
Ir arriba