Introducción a Kubernetes
Desde hace algún tiempo vengo estudiando Kubernetes, y me parece bastante interesante ir escribiendo entradas para poder mostrar funcionalidades de Kubernetes así como realizar despliegues; por lo que vamos a empezar por lo básico, por una introducción a Kubernetes.
¿Qué es Kubernetes?
El nombre Kubernetes (κυβερνήτης) viene del griego, cuyo significado es timonel o piloto, el cual, por lo general se escribe con su abreviatura k8s, que se obtiene de remplazar las 8 letras de «ubernete» por el digito 8.
Para definir kubernetes que mejor que hacer uso de la propia página:
Kubernetes es una plataforma portable y extensible de código abierto para administrar cargas de trabajo y servicios. Kubernetes facilita la automatización y la configuración declarativa. Tiene un ecosistema grande y en rápido crecimiento. El soporte, las herramientas y los servicios para Kubernetes están ampliamente disponibles.
https://kubernetes.io/es/docs/concepts/overview/
Resumiendo mucho lo anterior podríamos decir que K8S es un orquestador de contenedores, que nos facilita y nos ayuda en los despliegues.
Características de kubernetes
Kubernetes nos ofrece muchas características para orquestación de contenedores, algunas de las cuales podrían ser:
- Embalaje automático
Kubernetes programa automáticamente los contenedores en función de las necesidades y limitaciones de los recursos, para maximizar la utilización sin sacrificar la disponibilidad. - Auto recuperación
Kubernetes reemplaza y reprograma automáticamente los contenedores de los nodos fallidos. Mata y reinicia los contenedores que no responden a las comprobaciones de estado, según las reglas / políticas existentes. También evita que el tráfico se enrute a contenedores que no responden. - Escalado horizontal
Cn Kubernetes las aplicaciones son escaladas de manera manual o automática basado en CPU o métricas customizadas. - Servicio de descubrimiento y Balanceador de Carga
Los contenedores reciben sus propias direcciones IP de Kubernetes, mientras que asigna un solo nombre de Sistema de nombres de dominio (DNS) a un conjunto de contenedores para ayudar en las solicitudes de equilibrio de carga en los contenedores del conjunto. - Rolloust y rollbacks automáticos
Kubernetes implementa y revierte las actualizaciones de los cambios y de configuración (rolls out y rolls back), monitoriza constantemente el estado de la aplicacion para evitar cualquier caída del sistema. - Secretos y gestión de la configuración
Kubernetes gestiona los secretos y los detalles de configuración de una aplicación por separado de la imagen del contenedor, para evitar una reconstrucción de la imagen respectiva. Los secretos consisten en información confidencial que se pasa a la aplicación sin revelar el contenido sensible a la configuración de la pila, como en GitHub - Orquestación del almacenamiento
Kubernetes monta automáticamente soluciones de almacenamiento definido por software (SDS) en contenedores de almacenamiento local, proveedores externos de la nube o sistemas de almacenamiento en red. - Ejecución por lotes (batch)
Kubernetes admite la ejecución por lotes (batch), trabajos de larga duración y reemplaza los contenedores fallidos.
¿Por qué usar Kubernetes?
Aparte de por las características que hemos comentado antes, Kubernetes es portable y puede trabajar en multitud de entornos o clouds.
Es modular y plugable. Organiza aplicaciones de tipo microservicio de manera modular y desacoplada. Además sus funcionalidades se pueden ampliar escribiendo recursos personalizados, reglas, API personalizadas, añadir complementos, conectarse con terceros etc…
Y por si lo anterior fuera poco, existe detrás una comunidad de Open Source realmente activa.
Conclusión
Esta ha sido una pequeña introducción a Kubernetes, en la siguiente entrada veremos un poco más sobre su arquitectura, analizando el Master Node.
1 pensamiento sobre “Introducción a Kubernetes”