Kubernetes, conocido comúnmente como ‘K8s’, es un sistema de código abierto diseñado para administrar contenedores. Se caracteriza por la capacidad de gestionar grandes cargas de trabajo de manera eficiente ya que automatiza el proceso de administración de aplicaciones.
Su diseño cuenta con todos los mecanismos para el correcto despliegue, mantenimiento y escalado de aplicaciones. La unidad básica de planeación en Kubernetes son las cápsulas o ‘pods’, conformados por uno o más contenedores. Cuando un pod ejecuta varios contenedores estos trabajan como una sola entidad.
En su propia web, Kubernetes aclara que no es un sistema de orquestación, que se entiende como la ejecución de un flujo definido. Por ejemplo: haz A, luego B y después C. Sino que sus procesos de control son independientes y combinables entre sí por lo que no hay como tal un orden que deban seguir. Lo importante es obtener el resultado deseado de la manera más eficaz.
Las ventajas de usar contenedores
Anteriormente, para desplegar aplicaciones era necesario instalarlas en un servidor y usar el administrador de paquetes del sistema operativo. Todos sus componentes se entretejen entre sí para funcionar, en tanto que los contenedores de Kubernetes están aislados entre ellos: tienen sus propios sistemas de archivos y el uso de los recursos puede ser limitado.
Cada aplicación puede empaquetarse en imágenes de contenedor, mismas que son capaces de desarrollarse, integrarse y desplegarse continuamente de forma confiable.
El uso de contenedores también facilita el monitoreo de la salud de la aplicación, no tan solo las métricas de la plataforma. Es capaz de funcionar tanto en un equipo de cómputo como en la nube. Además, funciona en Ubuntu, RHEL, CoreOS, Google Kubernetes Engine y más.
El origen de Kubernetes
Para hablar del origen de Kubernetes hay que remontarse al año 2003 cuando nació el sistema Borg, proyecto que comenzó como un sistema de administración de clústeres interno a gran escala. Es decir, podía ejecutar miles de tareas de cientos de miles aplicaciones distintas.
Tras diez años de explorar y operar con Borg, en 2013 Google introdujo a Omega, muy similar al anterior pero con una mejora significativa: la escalabilidad. Es decir, podía sumar máquinas a los clústeres rápidamente y sin entorpecer el proceso.
El proyecto evolucionó al grado de que en 2014 presentaron oficialmente a Kubernetes como una versión de código abierto de la precursora Borg. Y como la cosa iba en serio publicaron el proyecto en Github. Al poco tiempo empresas como Microsoft, RedHat, IBM y Docker se unieron a la comunidad de Kubernetes.
No fueron las únicas, meses después Huawei y Openshift se sumaron. A la par se presentaron dos nuevas versiones de Kubernetes la 1-0 y la 1.1. De igual manera, Google se asoció con Linux Foundation para formar la Cloud Native Computing Foundation (CNCF), organización encargada de impulsar proyectos de código abierto.
Entre actualizaciones y nuevas características, Kubernetes consiguió que el proceso de construir aplicaciones fuera aún más sencillo, rápido y seguro.
Con el surgimiento de la versión 1.2, 1.3, 1.4 y 1.5 llegaron mejoras como escalado, implementación simplificada, administración automatizada de clústeres, compatibilidad con OpenAPI, soporte para Windows Server entre otras.
De 2017 a 2018 se dio a conocer de la versión 1.6 a la 1.11 con notables mejoras en la seguridad e implementación de APIS, así como el control de acceso basado en roles y mayor almacenamiento.
Para cerrar con broche de oro, Github ya se ejecutaba en Kubernetes y Oracle se unió a la CNCF. En marzo de 2018 la plataforma lanzó su propio podcast consolidándose así como el rey de los contenedores de aplicaciones.
¿Deseas iniciar con kubernetes pero no sabes como administrar?
En Grupo Electrodata y Red Hat tenemos la solución que necesitas.
Escríbenos a: marketing@electrodata.com.pe y un especialista te ayudará a encontrar la mejor solución para tu empresa.