Kubernetes

Artículo

Introducción a Kubernetes

Gestión de contenedores

Kubernetes (k8s) es una tecnología creada por Google y posteriormente liberada (OpenSource), para la gestión y orquestación de contenedores. Se ha convertido en el estándar de facto de la industria debido a su uso extendido, madurez y falta de alternativas.

¿Qué es un contenedor?

Es un conjunto de elementos que permite la ejecución de una aplicación determinada sobre cualquier sistema operativo. Como una “máquina virtual” solo que a diferencia de estas utilizan el Sistema Operativo del host en lugar de proporcionar el suyo propio.

¿Qué es un orquestador? ¿Qué aporta?

Es un gestor que se va a encargar de manera automática o semiautomática de la infraestructura (contenedores) de nuestras aplicaciones, aportando las siguientes funcionalidades:

  • Administración
  • Configuración
  • Escalabilidad
  • Disponibilidad
  • Descubrimiento de servicios y balanceo de carga
  • Autorreparación
  • Despliegues y rollbacks automáticos 
  • Orquestación del almacenamiento

Elementos de Kubernetes

  • Cluster: Conjunto de máquinas físicas o virtuales que son utilizados por Kubernetes
  • Pod: la unidad mínima de Kubernetes, puede ser un contenedor o varios
  • Node: el servidor ya sea virtual o físico que aloja el sistema de Kubernetes y donde vamos a desplegar nuestros pods
  • Deployments: donde se especifican la cantidad de réplicas de pods que tendremos en el sistema.
  • Namespaces: agrupaciones de elementos es un espacio de trabajo
  • Volumes: el acceso a un sistema de almacenamiento
  • Secrets: donde se guarda la información confidencial como usuarios y passwords, para poder acceder a los recursos.
  • Service:  la abstracción que define un conjunto de pods y la lógica para poder acceder a ellos.

Todos estos elementos se pueden definir en modo texto mediante ficheros con estructura “yaml” o “json”, para facilitar el almacenamiento y versionado mediante repositorios de código fuente y su utilización en las herramientas disponibles para entornos Cloud.

Deloitte

Ejemplo de arquitectura

Deloitte

En próximos artículos podemos detallar el despliegue y la gestión de una aplicación web básica con un servidor NGINX y una base de datos MYSQL.

Jesús Martín García

Jesús es Consultor senior (Jefe de Equipo) en DxD Deloitte con más de 10 años de experiencia en IT. Se incorporó a Deloitte recientemente en Abril de 2018. Su carrera se ha ido enfocando hacia la implantación de metodologías DevOps debido a la alta demanda en estos últimos años. Especialista en gestión de ciclos de vida de aplicaciones software, repositorios de código, herramientas CI/CD y despliegue en entornos Cloud, ayudando a distintos clientes en sus procesos de Transformación Digital.