Saltar al contenido principal

MÓDULO 1 - Introducción a Kubernetes

Visión General​

Este primer módulo le introduce a Kubernetes, la plataforma de orquestación de contenedores más utilizada en el mundo. Descubrirá por qué existe Kubernetes, cómo funciona a alto nivel y cuáles son los conceptos fundamentales que utilizará a lo largo de este curso.

Objetivos de Aprendizaje​

Al final de este módulo, usted será capaz de:

  • Explicar qué es Kubernetes y por qué es esencial
  • Comprender la evolución de la contenerización hacia la orquestación
  • Identificar los componentes principales de un clúster de Kubernetes
  • Distinguir el Control Plane de los Worker Nodes
  • Utilizar kubectl para interactuar con un clúster
  • Iniciar un clúster local para la práctica

Duración Estimada​

Teoría: 3-4 horas
Práctica: 2-3 horas
Total: 5-7 horas


Tabla de Contenidos​

Parte 1: Introducción y Conceptos​

  1. Capítulo 1.1 - ¿Qué es Kubernetes?
  2. Capítulo 1.2 - ¿Por qué Kubernetes?
  3. Capítulo 1.3 - Historia y Evolución
  4. Capítulo 1.4 - Arquitectura de Alto Nivel
  5. Capítulo 1.5 - Conceptos Fundamentales

Parte 2: Instalación y Práctica​

  1. Capítulo 1.6 - Instalación y Configuración

Laboratorios Prácticos​

Validación​


¿Qué es Kubernetes?​

Kubernetes (a menudo abreviado como K8s) es una plataforma open-source de orquestación de contenedores que automatiza el despliegue, el escalado y la gestión de aplicaciones contenerizadas.

Definición Simple​

Imagine que tiene varias aplicaciones (microservicios) que deben:

  • Ejecutarse en varios servidores
  • Reiniciarse automáticamente si fallan
  • Escalarse según la carga
  • Comunicarse entre sí de manera confiable

Kubernetes hace todo esto automáticamente por usted.

Analogía: El Director de Orquesta​

Así como un director de orquesta coordina a los músicos, Kubernetes coordina sus contenedores para que trabajen juntos en armonía.

Características Principales​

Kubernetes ofrece:

  1. Orquestación Automática

    • Despliegue y reinicio automáticos
    • Distribución de los contenedores en las máquinas disponibles
    • Gestión del ciclo de vida de las aplicaciones
  2. Escalado (Scaling)

    • Aumento/reducción automática del número de instancias
    • Adaptación a la carga de trabajo
    • Optimización del uso de recursos
  3. Auto-sanación (Self-Healing)

    • Reinicio automático de contenedores que fallan
    • Reemplazo de contenedores defectuosos
    • Redistribución en caso de fallo de máquina
  4. Descubrimiento de Servicios

    • Comunicación automática entre servicios
    • Balanceo de carga integrado
    • Gestión interna de DNS
  5. Gestión de Configuración

    • Almacenamiento centralizado de la configuración
    • Gestión segura de secretos
    • Despliegues declarativos

¿Por qué Kubernetes?​

Los Desafíos Sin Kubernetes​

Antes de Kubernetes, desplegar aplicaciones contenerizadas era complejo:

Problemas:

  • Gestión manual de los contenedores
  • Sin reinicio automático
  • Escalado complejo y manual
  • Sin balanceo de carga integrado
  • Gestión de configuración dispersa
  • Sin service discovery

Las Ventajas Con Kubernetes​

Ventajas:

  • Orquestación automática completa
  • Auto-sanación y alta disponibilidad
  • Escalado horizontal y vertical
  • Balanceo de carga integrado
  • Service discovery automático
  • Gestión centralizada de la configuración

Casos de Uso Típicos​

Kubernetes es ideal para:

  1. Microservicios

    • Aplicaciones compuestas por muchos servicios pequeños
    • Comunicación entre servicios
    • Despliegue independiente de cada servicio
  2. Aplicaciones Cloud-Native

    • Aplicaciones diseñadas para la nube
    • Escalabilidad automática
    • Resiliencia y auto-sanación
  3. DevOps y CI/CD

    • Despliegues automatizados
    • Rollback fácil en caso de problemas
    • Múltiples entornos (dev, staging, prod)
  4. Multi-cloud y Hybrid Cloud

    • Despliegue en múltiples nubes
    • Portabilidad entre entornos
    • Evitar vendor lock-in

Historia y Evolución​

La Evolución de la Contenerización​

Google y Borg​

Kubernetes fue creado por Google, que utilizaba internamente un sistema llamado Borg para orquestar millones de contenedores.

Borg (2003-2015):

  • Sistema propietario de Google
  • Gestionaba cientos de miles de jobs
  • Base de la experiencia para Kubernetes

Kubernetes (2014):

  • Versión open-source inspirada en Borg
  • Nombrado por la palabra griega "κυβερνήτης" (piloto, timón)
  • K8s = K + 8 letras + s

Adopción y Crecimiento​

Cifras clave:

  • Utilizado por millones de organizaciones
  • Más de 100,000 commits en GitHub
  • Más de 3,000 contribuidores
  • Adoptado por todas las grandes empresas tecnológicas

Arquitectura de Alto Nivel​

Visión General de un Clúster​

Un clúster de Kubernetes está compuesto por dos tipos de máquinas:

Control Plane (Master)​

El Control Plane es el "cerebro" del clúster. Toma todas las decisiones y gestiona el estado del clúster.

Componentes del Control Plane:

  1. API Server

    • Punto de entrada único para todas las interacciones
    • Valida y procesa las solicitudes
    • Expone la API REST de Kubernetes
  2. etcd

    • Base de datos distribuida
    • Almacena el estado del clúster
    • Fuente única de la verdad
  3. Controller Manager

    • Ejecuta los bucles de control
    • Supervisa el estado deseado vs el estado real
    • Toma acciones correctivas
  4. Scheduler

    • Decide en qué nodo colocar los nuevos pods
    • Considera los recursos y restricciones
    • Optimiza la distribución

Worker Nodes​

Los Worker Nodes ejecutan las aplicaciones. Cada nodo contiene:

Componentes de los Worker Nodes:

  1. kubelet

    • Agente que se comunica con el API Server
    • Gestiona los pods en el nodo
    • Supervisa la salud de los contenedores
  2. kube-proxy

    • Gestiona el networking a nivel de nodo
    • Implementa los Services (balanceo de carga)
    • Gestiona las reglas de red
  3. Container Runtime

    • Ejecuta los contenedores (Docker, containerd, CRI-O)
    • Gestiona las imágenes y contenedores
    • Interfaz estandarizada (CRI)

Conceptos Fundamentales​

Pods​

Un Pod es la unidad desplegable más pequeña en Kubernetes. Es un grupo de uno o más contenedores que comparten recursos.

Características:

  • Un Pod = uno o más contenedores
  • Los contenedores en un Pod comparten:
    • La dirección IP
    • Los volúmenes
    • El espacio de nombres de red
  • Los Pods son efímeros (pueden ser recreados)

Despliegues (Deployments)​

Un Deployment describe el estado deseado de su aplicación (cuántos réplicas, qué imagen, etc.).

Funcionalidades:

  • Gestión de réplicas (número de instancias)
  • Rolling updates (actualizaciones sin interrupción)
  • Rollback en caso de problemas
  • Auto-sanación

Services​

Un Service expone un conjunto de Pods como un servicio de red estable.

Tipos de Services:

  • ClusterIP: Servicio interno al clúster
  • NodePort: Expone en un puerto de cada nodo
  • LoadBalancer: Expone a través de un load balancer cloud
  • ExternalName: Alias hacia un servicio externo

Namespaces​

Los Namespaces permiten dividir un clúster en varios entornos virtuales.

Ventajas:

  • Aislamiento lógico
  • Separación de entornos
  • Gestión de cuotas de recursos
  • Control de acceso (RBAC)

Ecosistema Kubernetes​

Kubernetes no está solo. Forma parte de un ecosistema rico de herramientas y proyectos.

Proyectos CNCF​

La Cloud Native Computing Foundation (CNCF) alberga numerosos proyectos relacionados con Kubernetes:

  • Kubernetes: Orquestación
  • Prometheus: Monitoring
  • Helm: Gestión de paquetes
  • Istio: Service mesh
  • Fluentd: Logging
  • etcd: Almacenamiento distribuido
  • Y muchos más...

Resumen del Módulo​

En este módulo, usted ha aprendido:

Kubernetes es una plataforma de orquestación de contenedores
Automatiza el despliegue, el escalado y la gestión de aplicaciones
Un clúster está compuesto por un Control Plane y Worker Nodes
Los Pods son la unidad desplegable más pequeña
Los Deployments gestionan el ciclo de vida de las aplicaciones
Los Services exponen las aplicaciones de manera estable
Los Namespaces permiten el aislamiento lógico


Próximos Pasos​

Ahora que comprende los conceptos básicos, está listo para:

Módulo 2: Arquitectura detallada y componentes de Kubernetes
Módulo 3: Pods y Deployments en la práctica


Recursos Complementarios​


Módulo creado el: Diciembre 2024