Novedades de la Plataforma Kubernetes

Novedades en la Plataforma Kubernetes

Bueno en las conferencias que brinde el año pasado hubo muchas preguntas sobre este tema así que les prepare un articulo para ustedes para poder despejar algunas dudas sobre este tema y además conocer un poco más y saber porque se ha vuelto una tendencia el uso de  la plataforma kubernet para poder desarrollar aplicaciones y desplegarlas en producción en menor tiempo. Y como te ayuda a gestionar tus contenedores en Cloud. Asi mismo pronto estaré publicando un tutorial de kubernetes

 

Qué es Kubernetes

Kubernetes 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  y soporta múltiples runtimes de contenedores (docker).

Kubernetes se entiende como un orquestador de contenedores. El engine de estos contenedores puede ser variable, ya que normalmente se emplea Docker, pero también se utiliza bastante CRI-O.

Lo que intenta solucionar Kubernetes, sobre todo, son los problemas ocasionados de los procesos manuales, que están involucrados en la implementación y escalabilidad de las aplicaciones que corremos en estos contenedores.

Normalmente, en producción estas aplicaciones constan de varios contenedores, que pueden estar alojados en distintos hosts de servidores y no tenemos por qué tener visibilidad directa con ellos. Con Kubernetes se pueden crear servicios de aplicaciones que abarcan varios contenedores, se pueden programar en un cluster, escalar y administrar el estado de dichos contenedores.

Entonces, con Kubernetes lo que se trata de solucionar es el problema de proliferación de contenedores, porque podemos mantener el número de contenedores que queremos, podemos escalarlo en caso de necesidad o podemos reducirlo en caso de que ya no hagan falta.

 

Características principales Kubernetes

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 checksdefinidos 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.

¿Dónde podemos aplicar 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:
    • 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.
    • 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.
    • CloudFoundryofrece Kubernetes en su Container Runtime.
    • Otros: AzureIBMKube2Go, GiantSwarm  también ofrecen servicios gestionados de kubernetes.

Soluciones que ofrece Kubernetes

  • Entre las soluciones que ofrece Kubernetes destacamos las siguientes:
  • Orquestar contenedores en varios hosts.
  • Optimizar el consumo de los recursos de hardware.
  • Controlar y automatizar las implementaciones y actualizaciones de las aplicaciones implementadas.
  • Añadir almacenamiento para ejecutar aplicaciones con estado.
  • Escalar aplicaciones de contenedores o aumentar sobre la marcha los recursos que están consumiendo los mismos.
  • Administrar servicios de forma declarativa, garantizando así que las aplicaciones implementadas siempre se ejecuten en el mismo nodo en el que se implementaron.
  • Realizar comprobaciones de estado y de auto regeneración de las aplicaciones con ubicación, reinicio, replicación y escalamiento automático.

¿Por qué necesito Kubernetes y Docker juntos?

  • Con Kubernetes en Dockerpuedes programar y ejecutar las aplicaciones en los contenedores en grupos de máquinas virtuales o físicos.
  • En definitiva, Kubernetes proporciona la infraestructura para construir un entorno de desarrollo verdaderamente centrado en el contenedor con funcionalidades tales como re-arranque automático, auto-replicación y auto-escalado.

 

Otras herramientas similares a Kubernetes

Kubernetes no es la única herramienta de este tipo en el mercado, aunque si es la más utilizada. Existen otras alternativas como pueden ser:

  • Docker Swarm: Es la solución nativa de Docker. Históricamente Kubernetes salió antes que Docker Swarm y al principio Docker no daba soporte para Kubernetes. Pasados unos años se vieron obligados a dar soporte nativo porque el mercado que acaparaba Kubernetes era mucho mayor que el de Docker Swarm.
  • Marathon: Es un orquestador de Mesos, y es la segunda alternativa más famosa.

Kubernetes es una plataforma de código abierto muy útil que sirve para automatizar el despliegue, la escala y las operaciones en las aplicaciones de contenedores proporcionando una infraestructura centralizada de los contenedores y sus aplicaciones.

Bueno hasta aqui nos vemos en el proximo post y ya sabes cualquier duda me escribes o tienes algun tema que deseas que pueda tocar en mi blog

 

 

Acerca de MVP-Cloud Datacenter & Management

Consultor de Soluciones en infraestructura tecnologica Expositor en Congresos de Tecnologías Apoyo a comunidades en difusion de Tecnologias Microsoft
Esta entrada fue publicada en Tecnologia y etiquetada , , , , , , , , , . Guarda el enlace permanente.

Deja un comentario