Si ya estás utilizando contenedores en tu negocio o prevés hacerlo próximamente, seguro que ya lo conoces. Pero de todos modos vamos a hacer un pequeño recordatorio de qué es Kubernetes y para qué sirve.

Además, veremos cuáles son los motivos que hacen que Kubernetes sea la plataforma preferida para desarrollar mejores aplicaciones y desplegarlas en producción en menor tiempo. Y cómo se ha convertido en el core de los principales PaaS y de un gran número de productos Cloud para la gestión de contenedores.

¿Qué es Kubernetes?

Kubernetes (K8S) se define como un sistema open-source para la automatización de despliegues, el escalado y la gestión de aplicaciones contenerizadas.

Este orquestador de contenedores fue diseñado inicialmente por Google, quien después lo donó a la Cloud Native Computing Foundation, está escrito en Go. Se puede desplegar en múltiples entornos cloud o en bare-metal y soporta múltiples runtimes de contenedores (docker, rkt, cri-o o frakti).

¿Cuáles son sus características principales?

Últimamente K8S se está convirtiendo en el estándar de facto para la orquestación de contenedores porque aporta muchas más ventajas que otras soluciones en el mercado. Sus principales características son:

La evolución de Kubernetes

Desde sus inicios, Kubernetes ha sido un proyecto que ha gozado de gran reconocimiento y siempre ha tenido mucha repercusión, pero en los últimos meses su influencia se ha consolidado en base a diferentes factores.

La comunidad ha crecido de manera considerable. Google y Red Hat son quienes más contribuyen, pero también están Meteor, CoreOS, Huawei, Mesosphere y muchos más.

Este interés creciente se nota también en el número de cuestiones que se plantean en la plataforma Stack Overflow o en el número de meetups que se celebran relacionados con esta tecnología.

Además, ya no se percibe como un juguete con el que experimentar, está adquiriendo la suficiente solvencia para que cada vez se utilice más en producción, según recoge la encuesta de CNCF:

¿Dónde puedes utilizar Kubernetes?

Las opciones para utilizar Kubernetes apenas tienen restricción, casi cualquier opción de uso es posible gracias a todas las posibilidades de instalación que ofrece y porque muchas soluciones lo están integrando en sus arquitecturas. Así, disponemos de un abanico amplísimo para utilizar K8S en el sabor que queramos.

  1. Bare Metal: podemos desplegar nuestro cluster directamente sobre máquinas físicas utilizando múltiples sistemas operativos: Fedora, CentOS, Ubuntu, etc.
  2. Virtualización On Premise: si queremos montar nuestro cluster on premise, pero con máquinas virtuales, las posibilidades crecen. Podemos utilizar Vagrant, CloudStack, Vmware, OpenStack, CoreOS, oVirt, Fedora, etc.
  3. Soluciones Cloud: si queremos disponer de todas las ventajas de Kubernetes, sin encargarnos de gestionar todo lo que hay por debajo, tenemos todas estas alternativas en la nube:
  4. Google Container Engine: servicio gestionado y ofrecido por Google, que se encarga de manejar por nosotros las instancias de Compute Engine que tiene por debajo. Se ocupa también de la monitorización, del logging, de la salud de las instancias y de actualizar Kubernetes a la última versión disponible.
  5. OpenShift: el líder de los PaaS integra Kubernetes y, al utilizarlo en sus diferentes opciones (enterprise, online, etc.), estaremos haciendo uso de clusters gestionados de K8S.
  6. CoreOS Tectonic: es el producto mediante el que CoreOS proporciona Kubernetes. Facilita la portabilidad, entre varios proveedores, de cloud pública y privada. Su instalación, actualización y mantenimiento requieren de menos trabajo de operaciones. Incluye Prometheus para la monitorización y gestión de alertas.
  7. CoreOS: van a sustituir su sistema fleet por Kubernetes.
  8. Kops: sirve para crear y gestionar clusters de Kubernetes (si se requiere, en producción y con alta disponibilidad) desde línea de comandos. Hasta el momento, ha sido la forma oficiosa para instalar Kubernetes en AWS y tienen en sus planes abarcar también Google Compute Engine y VMware vSphere.
  9. Deis: su PaaS opensource, que ahora se llama Workflow, se basa en Kubernetes desde hace años
  10. Mesosphere: parece que tras su último anuncio, se van a inclinar mucho por el uso de Kubernetes como orquestador en lugar de Marathon.
  11. CloudFoundry ofrece Kubernetes en su Container Runtime.
  12. Otros: Azure, IBM o GiantSwarm también ofrecen servicios gestionados de kubernetes.
Nuevo llamado a la acción

Y por si le faltaba algún apoyo, ahora Amazon Web Services se ha unido como miembro platino al grupo DevOps de Kubernetes, la Cloud Native Computing Foundation.
Los contenedores han 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 donde un orquestador se hace necesario. Desde su aparición ya se vio cómo Kubernetes tomaba ventaja frente a otros orquestadores.

Aunque en los últimos meses han surgido muchos cambios y existe una gran competencia, parece que estamos asistiendo a la consolidación de Kubernetes como la principal solución de orquestación: se encuentra en todos los PaaS y en todos los servicios Cloud, tiene las mejores características y la comunidad no deja de mejorarlo.

Sin duda es la tecnología de la que todo el mundo habla, todos quieren contribuir en sus módulos y es la plataforma preferida para construir aplicaciones basadas en contenedores.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete

Estamos comprometidos.

Tecnología, personas e impacto positivo.