Por qué todos apuestan por Kubernetes

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 (dockerrktcri-o ofrakti).
¿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:
Escalado y autoescalado: en función del uso de CPU permite el escalado vertical de tus aplicaciones  de manera automática o de forma manual (mediante un comando o a través de la interfaz).
Descubrimiento de servicios y balanceo de carga: no es necesario utilizar un mecanismo externo para el descubrimiento de servicios ya que Kubernetes asigna a los contenedores sus propias direcciones IP y un nombre DNS único para un conjunto de contenedores y puede balancear la carga sobre ellos.
Autorreparación: en caso de fallo de un contenedor puede reiniciarlo automáticamente. Puede reemplazar o replanificar contenedores cuando un nodo muere. Y si hay contenedores que no responden a los health checks definidos por el usuario, puede pararlos.
Despliegues y rollbacks automáticos: cuando hay que actualizar una aplicación o cambiar su configuración, Kubernetes despliega los cambios de forma progresiva mientras monitoriza su salud para asegurar que no mata todas las instancias a la vez, y en caso de fallo, hace un rollback automático.

Planificación: se encarga de decidir en qué nodo se ejecutará cada contenedor de acuerdo a los recursos que requiera y a otras restricciones. Mezcla cargas de trabajo críticas y best-effortpara potenciar la utilización y el ahorro de recursos.
Gestión de la configuración y secrets: la información sensible, como las passwords o las claves ssh, se almacena en Kubernetes oculta en secrets. Tanto la configuración de la aplicación como los secrets se despliegan y se actualizan sin tener que reconstruir la imagen ni exponer información confidencial.
Orquestación del almacenamiento: puede montar automáticamente el sistema de almacenamiento necesario, ya sea almacenamiento local, almacenamiento en un proveedor de cloud pública (como GCP o AWS), o incluso un sistema de almacenamiento de red como NFS, SCSI, Gluster, Ceph, Cinder, o Flocker.
Ejecución Batch: además de los servicios, Kubernetes puede gestionar cargas de trabajo batch y CI, reemplazando los contenedores que fallen.

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.
Bare Metal: podemos desplegar nuestro cluster directamente sobre máquinas físicas utilizando múltiples sistemas operativos: Fedora, CentOS, Ubuntu, etc.
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.
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: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.
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.
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.
CoreOS: van a sustituir su sistema fleet por Kubernetes.
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.
Deis: su PaaS opensource, que ahora se llama Workflow, se basa en Kubernetes desde hace años
Mesosphere: parece que tras su último anuncio, se van a inclinar mucho por el uso de Kubernetes como orquestador en lugar de Marathon.
CloudFoundry ofrece Kubernetes en su Container Runtime.
Otros: AzureIBMKube2GoGiantSwarm también ofrecen servicios gestionados de kubernetes.

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.

fuente: https://www.paradigmadigital.com/techbiz/por-que-todos-apuestan-por-kubernetes/

Abrir chat
Hola 👋
¿En qué podemos ayudarte?