Introducción a Kubernetes

1

Implementación de Kubernetes: Configuración y Gestión de Clústeres Locales

2

Configuración de Kubernetes en Local con MiniCube y Kubectl

3

Componentes Fundamentales de Kubernetes: Nodos, Pods y Servicios

4

Comandos básicos de kubectl para gestionar clústeres Kubernetes

5

Enfoques Imperativo y Declarativo en Kubernetes

Quiz: Introducción a Kubernetes

Objetos y Recursos de Kubernetes

6

Creación y Gestión de Pods, Réplicas Sets y Deployments en Kubernetes

7

Exposición de Aplicaciones en Kubernetes: Servicios e Ingress

8

Gestión de ConfigMaps y Secrets en Kubernetes

Quiz: Objetos y Recursos de Kubernetes

Redes y Almacenamiento en Kubernetes

9

Modelo de Red en Kubernetes: Comunicación entre Pods y Servicios

10

Exposición de Aplicaciones en Kubernetes: NodePort, ClusterIP y LoadBalancer

11

Volúmenes Persistentes y Reclamaciones en Kubernetes

12

DaemonSets y StatefulSets en Kubernetes: Diferencias y Usos Clave

Quiz: Redes y Almacenamiento en Kubernetes

Cargas de Trabajo y Escalado

13

Despliegue de Aplicaciones con Kubernetes y Docker Compose

14

Gestión de Jobs y CronJobs en Kubernetes: Automatización de Tareas

15

Escalado de Aplicaciones en Kubernetes con HPA y VPA

16

Escalado de Aplicaciones en Kubernetes: HPA, VPA y Cluster Autoscaler

Quiz: Cargas de Trabajo y Escalado

Kubernetes en la Nube

17

Comparativa de Servicios Gestionados de Kubernetes: EKS, AKS y GKE

18

Gestión de Clústeres Kubernetes en AWS con AKSCTL

19

Despliegue de Clústeres Kubernetes en AKS y GKE

20

Despliegue de Aplicaciones en Clúster K8S con RDS en AWS

Quiz: Kubernetes en la Nube

Troubleshooting, Casos de uso y Certificaciones K8s

21

Debugging de Errores Comunes en Clústers de Kubernetes

22

Aplicaciones de Kubernetes en Edge Computing e IA/ML

23

Certificaciones y Recursos para Administradores de Kubernetes

24

Fundamentos y Aplicaciones de Kubernetes en Entornos Productivos

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Imagina que tienes un equipo de fútbol. ### **Nodos (Nodes)** El equipo tiene varios jugadores (nodos). Algunos jugadores son muy especiales, como el capitán (nodo maestro), que toma todas las decisiones importantes. Los otros jugadores (nodos de trabajo) se encargan de jugar y anotar goles. ### **Pods** Cada jugador (nodo) puede tener una o más tareas (pods). Por ejemplo, un jugador puede ser responsable de defender y atacar al mismo tiempo. ### **Servicios (Services)** Para que el equipo juegue bien, los jugadores necesitan comunicarse entre ellos. Los servicios son como el entrenador que envía instrucciones a los jugadores para que sepan qué hacer y con quién pasar la pelota. ### **Componentes Clave del Nodo Maestro (Master Node)** El capitán del equipo tiene varias responsabilidades: * **Servidor de API (API Server)**: Es como el entrenador principal que recibe y envía todas las órdenes a los jugadores. * **Etcd**: Es la libreta del entrenador donde anota todas las estrategias y posiciones de los jugadores. * **Administrador de Controladores (Controller Manager)**: Es el ayudante del entrenador que se asegura de que los jugadores estén en sus posiciones correctas. * **Programador (Scheduler)**: Es quien decide qué jugador debe estar en cada posición durante el partido. ### **Componentes Clave del Nodo de Trabajo (Worker Node)** Cada jugador tiene algunas tareas importantes: * **Kubelet**: Es como el entrenador personal de cada jugador que se asegura de que estén en buena forma y sigan las instrucciones. * **Kube-proxy**: Es el encargado de asegurarse de que los jugadores puedan comunicarse bien y pasar la pelota sin problemas. * **Runtime de Contenedores**: Es como la energía del jugador que le permite correr y jugar. Kubernetes es como un equipo de fútbol bien organizado donde todos tienen un rol y trabajan juntos para ganar el partido.
## 🌍 **Arquitectura de Kubernetes: Un Mundo Orquestado** Piensa en Kubernetes como el sistema operativo de un centro de datos. Su tarea es administrar aplicaciones distribuidas en contenedores, asegurando que se ejecuten de manera eficiente, escalable y tolerante a fallos. ### **🔧 Componentes Principales de Kubernetes** Podemos dividir Kubernetes en **dos grandes partes**: 1. **El Plano de Control (Control Plane) 🧠** * Es el "cerebro" del sistema, encargado de la gestión y control. 2. **Los Nodos de Trabajo (Worker Nodes) 🏗️** * Son los servidores donde realmente corren los contenedores y aplicaciones. ### 📍 **1. Control Plane: El "Centro de Control"** Este conjunto de componentes administra el clúster y toma decisiones sobre cómo deben ejecutarse las aplicaciones. #### **a) API Server (**`kube-apiserver`**) 📡** * Es el **punto de entrada** a Kubernetes. Todas las peticiones (desde kubectl, dashboard, o API externas) pasan por aquí. * Se comunica con los demás componentes para ejecutar órdenes. * **📌 Analogía**: Es como la **torre de control** en un aeropuerto, asegurándose de que los aviones (pods) despeguen y aterricen de manera segura. #### **b) etcd 📜 (Base de Datos de Estado)** * Guarda toda la configuración y el estado del clúster de Kubernetes. * Cada cambio en el sistema se registra aquí. * **📌 Analogía**: Es como el **registro de un hospital**, donde se almacena el historial de cada paciente (pods, deployments, servicios, etc.). #### **c) Controller Manager (**`kube-controller-manager`**) 🤖** * Se encarga de que el estado actual del clúster coincida con el estado deseado. * Tiene múltiples "subcontroladores" que manejan diferentes tareas: * **Node Controller**: Verifica la salud de los nodos. * **Replication Controller**: Se asegura de que siempre haya el número correcto de pods en ejecución. * **Endpoint Controller**: Maneja la comunicación entre servicios. * **📌 Analogía**: Es como un **supervisor de fábrica**, que revisa que todas las máquinas trabajen correctamente y toma acciones si algo falla. #### **d) Scheduler (**`kube-scheduler`**) 📅** * Decide en qué nodo se ejecutará cada pod. * Evalúa la capacidad del nodo y sus restricciones. * **📌 Analogía**: Es como un **sistema de reservas de hotel**, que asigna habitaciones (nodos) a los huéspedes (pods) basándose en disponibilidad y necesidades. ### 🏗️ **2. Worker Nodes: Donde Corre la Magia** Cada nodo de trabajo tiene los siguientes componentes: #### **a) Kubelet 🤝** * Es el agente que corre en cada nodo. * Recibe órdenes del API Server y se asegura de que los contenedores estén ejecutándose correctamente. * **📌 Analogía**: Es como un **mayordomo** que se encarga de ejecutar las tareas que le manda el jefe (Control Plane). #### **b) Container Runtime (Docker, containerd, CRI-O) 🏃‍♂️** * Es el encargado de ejecutar los contenedores dentro del nodo. * Kubernetes no corre contenedores directamente, sino que usa un runtime compatible con **Container Runtime Interface (CRI)**. * **📌 Analogía**: Es como un **motor** en un auto, encargado de hacer que las cosas realmente se muevan. #### **c) Kube-Proxy 🌐** * Gestiona la red en cada nodo. * Permite que los pods se comuniquen entre sí y con el exterior. * **📌 Analogía**: Es como un **router de internet**, asegurándose de que cada mensaje llegue a su destino correcto. ### 🌐 **Objetos de Kubernetes: Construyendo la Infraestructura** Kubernetes usa diferentes **objetos** para definir cómo se ejecutan las aplicaciones. #### **1. Pods 🚢** * Son la **unidad más pequeña** en Kubernetes. * Un pod puede contener uno o más contenedores que comparten red y almacenamiento. * **📌 Analogía**: Es como un **contenedor de carga en un barco**, donde cada paquete (contenedor) viaja junto con otros. #### **2. Deployments 📦** * Gestionan la creación y actualización de los pods. * Permiten el escalado automático y el rollback si algo sale mal. * **📌 Analogía**: Es como un **director de orquesta**, asegurándose de que los músicos (pods) toquen en sincronía. #### **3. Services 🌍** * Permiten la comunicación entre pods y con el exterior. * Existen diferentes tipos: * **ClusterIP**: Comunicación interna en el clúster. * **NodePort**: Expone un puerto en cada nodo. * **LoadBalancer**: Usa un balanceador de carga externo. * **📌 Analogía**: Es como una **central telefónica**, conectando llamadas entre diferentes extensiones. #### **4. ConfigMaps y Secrets 🔑** * ConfigMaps: Guardan configuraciones en texto plano. * Secrets: Guardan datos sensibles como contraseñas y tokens de autenticación. * **📌 Analogía**: Son como una **bóveda de seguridad**, donde se almacenan archivos y credenciales importantes. #### **5. Ingress 🚦** * Gestiona el tráfico HTTP/HTTPS hacia los servicios de Kubernetes. * Usa reglas basadas en nombres de dominio o rutas. * **📌 Analogía**: Es como un **guardia de seguridad en un edificio**, que dirige a los visitantes a la oficina correcta. ### 🚀 **Flujo de una Aplicación en Kubernetes** Supongamos que desplegamos una aplicación web en Kubernetes. El flujo sería: 1. **El desarrollador crea un Deployment**, que define cuántos pods ejecutar. 2. **El Scheduler asigna los pods** a diferentes nodos. 3. **Los kubelets arrancan los contenedores** dentro de los pods. 4. **Kube-Proxy configura la red** para permitir la comunicación. 5. **Un Service expone la aplicación** dentro del clúster o hacia el exterior. 6. **Ingress recibe las peticiones HTTP** y las redirige al Service. ### 🎯 **Conclusión** Kubernetes es un sistema altamente distribuido y modular que permite **orquestar** contenedores de manera eficiente. 📌 **Si lo resumimos en una frase:** Kubernetes es como un **gestor de tráfico aéreo** para contenedores, asegurándose de que todo esté donde debe estar, en la cantidad correcta y funcionando correctamente.
### **Arquitectura de Kubernetes: Gestión Orquestada** Kubernetes actúa como un **sistema operativo para centros de datos**, gestionando contenedores de forma eficiente, escalable y tolerante a fallos. ### **Componentes Clave** 🔹 **Control Plane** 🧠 (Gestión del Clúster) * `kube-apiserver` 📡: Punto de entrada a Kubernetes. * `etcd` 📜: Base de datos con el estado del clúster. * `kube-controller-manager` 🤖: Mantiene el estado deseado. * `kube-scheduler` 📅: Asigna pods a nodos. 🔹 **Worker Nodes** 🏗️ (Ejecución de Contenedores) * `kubelet` 🤝: Agente que gestiona los contenedores en cada nodo. * `Container Runtime` 🏃‍♂️ (Docker, containerd): Ejecuta los contenedores. * `kube-proxy` 🌐: Gestiona la comunicación en la red. ### **Objetos de Kubernetes** * **Pods 🚢**: Unidad mínima con uno o más contenedores. * **Deployments 📦**: Gestiona creación y escalado de pods. * **Services 🌍**: Permiten comunicación interna y externa. * **ConfigMaps & Secrets 🔑**: Almacenan configuraciones y datos sensibles. * **Ingress 🚦**: Gestiona tráfico HTTP/HTTPS hacia los servicios. ### **Flujo de una Aplicación** 1. Un **Deployment** crea los pods. 2. El **Scheduler** los asigna a nodos. 3. **Kubelet** los ejecuta y **Kube-Proxy** gestiona la red. 4. Un **Service** los expone y **Ingress** dirige el tráfico. 📌 **Kubernetes es el controlador de tráfico aéreo de los contenedores, asegurando que todo funcione correctamente.** 🚀
Creo que esta clase es de las más importantes del curso. Una de las cosas más complejas de kubernetes es entender como funciona. Dedicarle tiempo a entender, asimilar y contrastar la información que se ha visto en esta clase es supervalioso para trabajar con Kubernetes. Me encantó el formato de la clase!! 🤩
EJEMPLO EQUIPO DE VOLEIBOL En tu **cluster (equipo completo)** tienes un **namespace (estrategia de ataque)**. * Dentro de esa estrategia, tienes un **nodo (jugador)**. * Ese nodo tiene habilidades como:* **Hacer remates** (pod) * **Hacer saques** (otro pod) * Cada una de esas acciones necesita pasos o movimientos:* Saltar, correr, estirar el brazo → esos son los **contenedores (contenedores Docker)** que hacen que esa acción funcione. * Están *dentro del pod*, trabajando juntos para ejecutar la jugada.
undefined