Para quienes venimos aprendiendo o trabajando con Docker u otro tipo de contenedores, hay una palabra que deben de haber escuchado hasta cansarse y muchos todavía se deben estar preguntando que significa: Kubernetes.
Kubernetes o como también se lo llama K8s (ya que tiene ocho letras entre la k y la s) es el siguiente paso lógico, tanto si trabajamos en producción o tenemos nuestro entorno de desarrollo local.
Así que para remediar esto, vamos a pausar momentáneamente nuestra serie de Docker, contarte de qué va todo esto y echar un poco de luz al asunto.
Qué es Kubernetes
Kubernetes (del griego κυβερνήτης, que significa piloto o gobernador) es un proyecto open source lanzado en 2014 por Google, quien luego lo donó a la Linux Foundation.
Google ya venía trabajando durante años con contenedores en sus servicios internos y fue la primera en darse cuenta de la importancia de tener un sistema centralizado para administrar sus aplicaciones de manera más rápida y eficiente.
Kubernetes es un framework de orquestación de contenedores que nos permite desplegar y controlar nuestras aplicaciones ya sea en máquinas virtuales, físicas o en la nube.
Qué nos ofrece Kubernetes y por qué es indispensable
Docker es una herramienta poderosa pero rápidamente nos daremos cuenta que administrar decenas o cientos de contenedores no es eficiente.
K8s lo hace fácil acompañándonos durante todo el proceso.
Escalado: Nos permite escalar verticalmente y generar cientos de contenedores rápidamente en minutos para cubrir la demanda de nuestra aplicación.
Regeneración: Nos permite reponernos de un error o caída en el servidor instantáneamente, reiniciando o replicando los contenedores dañados.
Servicios y balanceo de carga: No necesitamos herramientas externas para generar servicios y balanceo de carga. K8s se encarga de todo automáticamente y ademas asigna sus propias Ips y crea un DNS para todo el nodo.
Despliegues automáticos: De querer actualizar nuestra aplicación o volver a una versión anterior, lo hace progresivamente dándole disponibilidad continua a nuestros usuarios.
Secretos: Nos permite manejar información sensible como claves ssh o contraseñas, codificando la información y asignándola a un recurso especial llamado secreto.
Estas son solo algunas de los beneficios que nos da Kubernetes, consolidándose como el nuevo status-quo en orquestación y despliegue.
Dejar de pensar en contenedores
Una vez que descubrimos K8s nos damos cuenta que debemos dejar de pensar en contenedores. Kubernetes introduce muchísima terminología nueva pero sobretodo el concepto de Pods.
Un pod es la unidad mínima de información que vamos a manejar de ahora en adelante. Un pod tiene siempre como mínimo un contenedor pero no tiene un límite.
Kubernetes trabaja con varios objetos en diferentes niveles (Deployment, Replicaset, Pods) los cuales cumplen diferentes tareas en el proceso de orquestación. Pero siempre terminamos con un Pod, el cual crea automaticamente los contenedores.
Diferentes sabores de K8s
Kubernetes viene en diferentes ‘distribuciones’ las cuales nos ofrece además herramientas extras para hacernos la vida un poco más fácil. Existen decenas de ellas pero algunas de las más conocidas son:
Microk8s:
Creada por Canonical, la misma gente detrás de Ubuntu. Es una excelente opción para testeo o producción de Kubernetes en entornos locales.
Ademas nos ofrece un entorno gráfico vía web más intuitivo.
Docker for Windows/Docker for Mac:
Aunque Docker tiene su propio orquestador Docker Swarm, rápidamente se dio cuenta que no podía prescindir de K8s y lo incluye por defecto en su aplicación de escritorio.
Rancher:
Otra opción que viene sumando adeptos ya que además de trabajar local nos permite integración en la nube con Azure, AWS o Google Cloud.
Amazon EKS:
Como no podía ser de otra manera Amazon nos ofrece su propio sistema Kubernetes para trabajar directamente en la nube.
Sólo queda animarse!
Espero que este post les dé el empujoncito necesario para entrar en el mundo de la orquestación.
Desde Abatic seguiremos profundizando y generando nuevo contenido para que estés siempre al día con las tecnologías y metodologías actuales. Y si necesitas ayuda siempre puedes contactar con nosotros que estaremos encantados de ayudarte.
Deja una respuesta