Skip to content

Latest commit

 

History

History

28-DevOps-Kubernetes

// concepto

Kubernetes (K8s) es un orquestador de contenedores open-source que automatiza el despliegue, escalado y gestión de aplicaciones en contenedores. Resuelve los problemas de operar Docker a escala.

Arquitectura:

Cluster
├── Control Plane (master)
│   ├── API Server          ← punto de entrada de toda comunicación
│   ├── Scheduler           ← asigna pods a nodos
│   ├── Controller Manager  ← mantiene el estado deseado
│   └── etcd                ← almacén de estado del cluster
└── Worker Nodes
    ├── kubelet             ← agente en cada nodo
    ├── kube-proxy          ← networking del nodo
    └── Container Runtime   ← Docker/containerd
// key features

Objetos principales:

Objeto Descripción
Pod Unidad mínima: 1+ contenedores que comparten red y almacenamiento
Deployment Gestiona N réplicas de un Pod + rolling updates
Service Expone Pods con una IP/DNS estable (ClusterIP/NodePort/LoadBalancer)
ConfigMap Configuración no sensible (inyectada como env vars o archivos)
Secret Configuración sensible (passwords, tokens) — base64 encoded
HPA Horizontal Pod Autoscaler — escala réplicas según CPU/memoria
Ingress Punto de entrada HTTP/S con routing por host/path

Comandos básicos:

kubectl get pods                   # lista pods
kubectl describe pod <nombre>      # detalles
kubectl logs <pod>                 # logs del pod
kubectl apply -f deployment.yaml   # aplica manifiesto
kubectl scale deployment app --replicas=5
// ventajas
  • Alta disponibilidad: si un pod falla, Kubernetes lo reemplaza automáticamente.
  • Escalado automático: HPA ajusta las réplicas según la carga.
  • Rolling updates: despliegues sin downtime con rollback automático si falla.
  • ConfigMap/Secret: configuración externalizada sin recompilar imágenes.

Este módulo es solo teoría — los manifiestos YAML se aplican en un cluster real.