¿Qué es Kubernetes?
Kubernetes es una plataforma de orquestación de contenedores que permite gestionar aplicaciones distribuidas de forma automática. Fue creada por Google y está diseñada para ejecutar aplicaciones en contenedores (como Docker) de manera escalable, confiable y eficiente.
En pocas palabras, Kubernetes se encarga de:
- Desplegar contenedores
- Escalarlos automáticamente
- Reiniciarlos cuando fallan
- Balancear la carga
- Actualizar versiones sin tiempo de inactividad
Todo esto dentro de un clúster compuesto por múltiples máquinas.
¿Por qué usar Kubernetes?
Kubernetes es el estándar de la industria porque resuelve problemas reales en aplicaciones modernas:
- Las apps necesitan alta disponibilidad
- Escalan según demanda
- Deben ser fáciles de actualizar
- No pueden depender de un solo servidor
- Requieren automatización
Kubernetes abstrae toda esta complejidad y la convierte en configuraciones declarativas.
Arquitectura de Kubernetes: visión general
Un clúster de Kubernetes está compuesto por dos partes principales:
-
Control Plane (Plano de control)
-
Worker Nodes (Nodos de trabajo)
Cada uno tiene componentes específicos que gestionan diferentes responsabilidades.
1. Control Plane (Plano de control)
El Control Plane es el “cerebro” de Kubernetes. Aquí se toman las decisiones globales y se administra todo el clúster.
Sus componentes principales son:
API Server
Es la puerta de entrada al clúster.
Todas las acciones pasan por aquí:
kubectl get pods kubectl apply -f deployment.yaml
El API Server valida y procesa cada solicitud.
Scheduler
El Scheduler decide en qué nodo debe ejecutarse un nuevo pod.
Considera CPU, RAM, afinidades, restricciones, etc.
Controller Manager
Mantiene el estado del clúster.
Por ejemplo, si dijiste que quieres 3 réplicas, él se asegura de que siempre existan esas 3.
etcd
Base de datos distribuida donde Kubernetes guarda:
- Configuración
- Estado del clúster
- Información de nodos, pods, servicios, etc.
Es la memoria del clúster.
2. Worker Nodes (Nodos de trabajo)
Los nodos son máquinas físicas o virtuales donde se ejecutan los contenedores.
Los nodos tienen tres componentes fundamentales:
Kubelet
Agente que se comunica con el Control Plane.
Su rol es ejecutar contenedores siguiendo las órdenes del Scheduler.
Kube-Proxy
Maneja reglas de red y balanceo de tráfico.
Permite que un pod pueda comunicarse con otros pods o servicios.
Motor de contenedores
Puede ser:
- Docker
- Containerd
- CRI-O
Este software ejecuta los contenedores reales.
Objetos principales de Kubernetes
Además de su arquitectura, Kubernetes trabaja con objetos declarativos:
Pod
La unidad mínima de ejecución.
Contiene uno o varios contenedores.
Deployment
Controla versiones, actualizaciones y réplicas de pods.
Service
Expone tus pods en una red interna o externa.
ConfigMap y Secret
Almacenan configuraciones y credenciales.
Ingress
Expone servicios HTTP/HTTPS al exterior.
¿Cómo fluye la información en Kubernetes?
- Usas kubectl apply para enviar una configuración.
- El API Server recibe la solicitud.
- La guarda en etcd.
- El Controller Manager detecta que faltan objetos para cumplir el estado deseado.
- El Scheduler decide dónde ejecutar los pods.
- El Kubelet en cada nodo ejecuta los contenedores.
- El Kube-Proxy gestiona la red.
- Todo ocurre automáticamente.
Ventajas de Kubernetes
- Alta disponibilidad
- Escalabilidad automática (Horizontal Pod Autoscaler)
- Recuperación automática
- Despliegues sin downtime
- Soporta microservicios
- Independencia del proveedor cloud
CONCLUSIÓN
Kubernetes es una pieza clave del mundo DevOps moderno. Entender su arquitectura te permite comprender cómo se despliegan y administran aplicaciones a gran escala. Con esta base podrás comenzar a trabajar con Deployments, Services, Ingress y todo su ecosistema.
- Debes estar logueado para realizar comentarios