Kubernetes


Comprender qué es Kubernetes, su arquitectura y desplegar tu primer clúster local

oscar Escrito por oscar 24 July 2025 67 0
Fundamentos de Kubernetes

🎯 Objetivo: Aprender sobre kunernetes, instalar un entorno de trabajo y crear primer pod.

🧠¿Qué es Kubernetes?

Kubernetes (abreviado como K8s) es una plataforma de código abierto desarrollada inicialmente por Google y ahora mantenida por la Cloud Native Computing Foundation (CNCF), que sirve para automatizar el despliegue, la gestión, el escalado y la organización de contenedores. En otras palabras: Kubernetes es un orquestador de contenedores.

Fue diseñado para ayudarte a administrar aplicaciones que están empaquetadas en contenedores (como los que creas con Docker), especialmente cuando estas aplicaciones se ejecutan en múltiples máquinas o servidores (llamados nodos).

🎯 ¿Para qué se usa Kubernetes?

  • Orquestar contenedores: Kubernetes gestiona automáticamente dónde y cuándo se ejecutan los contenedores, asegurándose de que siempre estén funcionando y distribuidos correctamente en el clúster.
  • Escalabilidad automática: Kubernetes puede escalar automáticamente el número de réplicas de una aplicación (por ejemplo, de 3 a 10 instancias) dependiendo del uso de recursos como CPU o memoria.
  • Alta disponibilidad: Si uno de tus servidores falla, Kubernetes puede reiniciar automáticamente los contenedores en otro nodo disponible, asegurando que la aplicación siempre esté funcionando.
  • Despliegues sin interrupciones: Permite actualizaciones de versiones de forma progresiva y segura (por ejemplo, con blue-green deployment o rolling updates), sin necesidad de parar el servicio.
  • Balanceo de carga: Distribuye el tráfico entre las instancias de tu aplicación de forma automática, garantizando que no se sobrecargue ninguna.
  • Gestión de configuración y secretos: Kubernetes tiene recursos como ConfigMaps y Secrets que te permiten manejar configuraciones sensibles (como contraseñas, tokens, etc.) sin tener que “quemarlos” en el código fuente.

🏗️ Arquitectura de Kubernetes

Se ha creado el post Clústeres de Kubernetes donde explico a detalle el tema, dejo a continuación una imagen donde se se muestra un cluster de kubernetes.

Cluster kubernetes
Cluster kubernetes

Instalación local

  • Realizamos el Paso a paso para Instalar minikube, con esto ya tenemos un entorno de trabajo en nuestras maquinas locales y poder realizar la ejecución de los ejercicios propuestos en esta guía de kubernetes. Revisa el listado de comandos de minikube puede servir de mucha ayuda.
  • Realizamos la instalación de kubectl que es la herramienta de línea de comandos oficial para interactuar con Kubernetes.
  • Muy importante revisar el Contexto en kubectl por si tenemos varios cluster de kubernetes y debemos seleccionar uno en especifico.

Crear tu primer Pod

Services

Objetos Fundamentales

🎯 Objetivo: Aprender los recursos clave: Deployments, ConfigMaps, Secrets, Volumes.

Deployments

Namespaces

  • Crear y usar namespaces para aislar los entornos en donde se crearan los pods y services.

ConfigMaps y Secrets

  • Variables de entorno
  • Montaje como archivos

Volúmenes

  • Volúmenes efímeros
  • Introducción a PV y PVC

Probes y Labels

  • Liveness & Readiness Probes
  • Selectores y etiquetas

Proyecto

  • Desplegar una app Node.js o Flask con ConfigMap, Secret, PVC y Probes
Gestión, Escalado y Seguridad

🎯 Objetivo: Escalar aplicaciones, crear reglas RBAC y explorar networking.

HPA (Horizontal Pod Autoscaler)

  • Autoescalado basado en CPU
  • Simulación de carga

RBAC

  • Roles, RoleBinding y ServiceAccounts
  • Seguridad básica por usuario

Network Policies

  • Aislar pods
  • Crear reglas de comunicación

Logs y métricas

  • kubectl logs
  • kubectl top pods

Helm

  • Instalación y uso básico
  • Instalar una app: por ejemplo, WordPress o Prometheus

Proyecto

  • Desplegar una aplicación con escalado automático y Helm

Kubernetes en la nube y avanzados

🎯 Objetivo: Preparar tu entorno en la nube y usar Ingress Controllers.

Clúster en la nube

  • Crear clúster en GKE (puede usarse el free tier)
  • Conectarte vía kubectl

Ingress Controller

  • Instalar NGINX Ingress Controller
  • Crear recurso Ingress

TLS con Cert-Manager

  • Automatizar certificados TLS

StatefulSets y DaemonSets

  • Stateful apps (ej: MongoDB, Redis)
  • Deploy de Daemon (como log collectors)

Proyecto

  • Desplegar app con Ingress, HTTPS y almacenamiento persistente

Observabilidad y CI/CD

🎯 Objetivo: Monitorear y automatizar el despliegue de tus aplicaciones.

Prometheus + Grafana

  • Instalar con Helm
  • Visualizar métricas

Logs centralizados

  • Instalar Loki o Fluentd
  • Consultar logs por app

Tracing con Jaeger

  • Trazabilidad de microservicios

CI/CD

  • Usar GitHub Actions para despliegue a Kubernetes
  • Pipeline de build, push, deploy

Proyecto

  • Crear una pipeline completa para una app

Especialización y preparación para certificación

🎯 Objetivo: Consolidar conceptos, buenas prácticas y certificaciones.

Repaso general y práctica

  • Comandos kubectl, YAML, Helm

Práctica en Katacoda o Play with Kubernetes

Estudio CKA/CKAD

  • Simuladores como killer.sh

Buenas prácticas en producción

  • Seguridad, backup (Velero), auditoría

Proyecto final

  • Despliegue completo de una aplicación real con Ingress, TLS, HPA, monitoring y CI/CD


Comentario

Debe aceptar antes de enviar