Capítulo 1.4 - Arquitectura de Alto Nivel
Objetivos de Aprendizaje
Al final de este capítulo, usted será capaz de:
- Comprender la estructura de un clúster Kubernetes
- Identificar los componentes del Control Plane
- Identificar los componentes de los Worker Nodes
- Comprender la comunicación entre los componentes
Introducción
Un clúster Kubernetes está compuesto por máquinas organizadas en dos grupos principales: el Control Plane (anteriormente Master) y los Worker Nodes. Comprender esta arquitectura es esencial para dominar Kubernetes.
Visión General de un Clúster
Estructura Básica
Dos tipos de máquinas:
- Control Plane: Toma decisiones y gestiona el estado
- Worker Nodes: Ejecutan las aplicaciones
El Control Plane (Master)
Rol Principal
El Control Plane es el "cerebro" del clúster:
Responsabilidades:
- Gestionar el estado deseado del clúster
- Tomar decisiones de despliegue
- Coordinar los Worker Nodes
- Exponer la API de Kubernetes
Componentes del Control Plane
1. API Server
Rol: Punto de entrada único para todas las interacciones
Funcionalidades:
- Valida y procesa todas las solicitudes
- Expone la API REST de Kubernetes
- Autenticación y autorización
- Rate limiting
2. etcd
Rol: Base de datos distribuida - Fuente de la verdad
Características:
- Base de datos clave-valor distribuida
- Almacena TODO el estado del clúster
- Fuente de la verdad única
- Alta disponibilidad (múltiples instancias)
Importante: etcd es crítico - ¡su pérdida = pérdida del clúster!
3. Controller Manager
Rol: Ejecuta los bucles de control
Controllers incluidos:
- Deployment Controller
- ReplicaSet Controller
- Service Controller
- Node Controller
- Y muchos más...
Principio: Supervisa el estado deseado vs el estado real y toma acciones correctivas
4. Scheduler
Rol: Decide en qué node colocar los nuevos Pods
Criterios de selección:
- Recursos disponibles (CPU, RAM)
- Restricciones (affinity, anti-affinity)
- Balanceo de carga
- Políticas de ubicación
Los Worker Nodes
Rol Principal
Los Worker Nodes ejecutan las aplicaciones:
Componentes de un Worker Node
1. kubelet
Rol: Agente que se comunica con el API Server
Funcionalidades:
- Recibe instrucciones del API Server
- Gestiona los Pods en el node
- Supervisa la salud de los contenedores
- Reporta el estado al Control Plane
2. kube-proxy
Rol: Gestiona el networking a nivel del node
Funcionalidades:
- Implementa los Services (load balancing)
- Gestiona las reglas de red
- Routing del tráfico hacia los Pods
- Network Policies
3. Container Runtime
Rol: Ejecuta los contenedores
Runtimes soportados:
- Docker (obsoleto pero aún utilizado)
- containerd (recomendado)
- CRI-O (ligero)
Interfaz: CRI (Container Runtime Interface)
Comunicación en el Clúster
Flujo de Comunicación
Comunicación API Server ↔ Nodes
Protocolo: HTTPS (seguro) Dirección: Bidireccional
- API Server → Nodes: Instrucciones
- Nodes → API Server: Reportes de estado
Alta Disponibilidad
Control Plane HA
Para producción, el Control Plane debe ser altamente disponible:
Recomendación: Mínimo 3 instancias para quorum
Resumen del Capítulo
En este capítulo, usted ha aprendido:
Clúster = Control Plane + Worker Nodes
Control Plane: API Server, etcd, Controller Manager, Scheduler
Worker Nodes: kubelet, kube-proxy, Container Runtime
API Server: Punto de entrada único
etcd: Base de datos del estado
kubelet: Agente en cada node
Comunicación: HTTPS entre todos los componentes
Próximos Pasos
Ahora que usted comprende la arquitectura:
Capítulo 1.5: Conceptos Fundamentales (Pods, Services, etc.)
Lab 1.1: Primer Despliegue
Capítulo creado el: Diciembre 2024