¿Qué es Kubernetes?

Kubernetes o también llamado «k8s« es una plataforma de código abierto nacida en Google, que automatiza las operaciones de los contenedores de Linux. Es una plataforma portable y extensible para administrar cargas de trabajo y servicios.  

Lo que nos permite a grandes rasgos Kubernetes, es realizar la orquestación de aplicaciones contenerizadas a lo largo de una gran cantidad de servidores, para hacer un uso más eficiente de estos y del espacio disponible, brindando una capa de abstracción al proceso de administración de los contendedores.  

Las aplicaciones de producción real abarcan varios (por no decir muchos) contenedores y estos deben implementarse en múltiples servidores. Aquí es donde Kubernetes puede ayudarnos, ofreciéndonos la capacidad de organización y gestión necesaria para implementar estas unidades aisladas y contenidas a escala para las cargas de trabajo. 

El sistema de organización de Kubernetes permite diseñar servicios de aplicaciones que abarquen varios contenedores, programarlos dentro de un clúster, ampliarlos y gestionar su estado a lo largo del tiempo. 

¿Cuáles son los beneficios que ofrece Kubernetes?

Los principales beneficios que ofrece esta tecnología para los equipos de desarrollo son: 

  • Escalabilidad y balanceo de carga.
  • Aislamiento de procesos y aplicaciones. 
  • Facilidades para el despliegue.
  • Optimización de recursos a través de la automatización.
  • Optimización de flujos para un desarrollo acelerado. 
  • Alta disponibilidad.

La principal ventaja de usar Kubernetes en tu entorno, especialmente si te encuentras optimizando el desarrollo de aplicaciones para la nube, es ofrecer una plataforma para programar y ejecutar contenedores en clústeres de Máquinas Virtuales (VM) o físicas. K8s nos brinda la oportunidad de implementar una infraestructura basada en contenedores en los entornos de producción, y depender completamente de ella. Dado que Kubernetes abarca todo lo referido a la automatización de tareas operativas, puedes hacer muchas de las cosas que también otras plataformas de aplicaciones o sistemas de gestión te permiten hacer, pero utilizando contenedores, como Dockerrkt y CRI-O

Esta forma de aislar los compontes de una solución ha supuesto un cambio radical en la forma en la que construimos y desplegamos aplicaciones. A medida que aumenta la densidad de contenedores, se necesitan herramientas que faciliten su comunicación, administración y planificación. Es en este ambiente es donde un orquestador se vuelve imprescindible. Desde su aparición ya se vio cómo Kubernetes tomaba ventaja frente a otros orquestadores competitivos dentro del mercado. 

Conclusiones|

Gracias a esta plataforma podemos realizar el seguimiento del estado actual de nuestra solución de una forma efectiva, para anticiparnos a posibles problemas y visualizar cuellos de botella en el ambiente de producción, punto muy importante cuando hablamos de soluciones basadas en microservicios, en donde el proceso puede fallar por un problema puntual. 

Se puede llevar seguimiento de las métricas del clúster, como el número de nodos que se tiene en funcionamiento (por lo cual estamos pagando), los recursos que se están utilizando por nodos, ya sea CPU, ancho de banda, memoria, espacio en disco, etc. Esto nos lleva a tener una solución optimizada en recursos y costos.