Volver al curso

DevOps Moderno: CI/CD, Docker y Kubernetes

leccion
7 / 12
advanced
30 horas
Kubernetes: Orquestacion de Contenedores a Escala

Kubernetes Fundamentos: Pods, Services y Deployments

Lectura
50 min~2 min lectura

Kubernetes: Orquestacion de Contenedores

Kubernetes (K8s) es la plataforma de orquestacion de contenedores mas utilizada. Automatiza el deployment, scaling y gestion de aplicaciones containerizadas. Si Docker es como una caja para tu aplicacion, Kubernetes es el almacen inteligente que organiza miles de cajas.

Arquitectura de Kubernetes

ComponenteFuncionAnalogia
Control PlaneCerebro del cluster, toma decisionesGerente de almacen
NodeMaquina que ejecuta contenedoresTrabajador
PodUnidad minima, 1+ contenedoresUna caja
ServicePunto de acceso estable a podsDireccion fija del almacen
DeploymentDeclaracion del estado deseadoOrden de trabajo
NamespaceAislamiento logicoSeccion del almacen
# deployment.yml - Tu primera app en K8s
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mi-app
  labels:
    app: mi-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mi-app
  template:
    metadata:
      labels:
        app: mi-app
    spec:
      containers:
        - name: app
          image: mi-app:1.0.0
          ports:
            - containerPort: 3000
          resources:
            requests:
              memory: '128Mi'
              cpu: '100m'
            limits:
              memory: '256Mi'
              cpu: '500m'
          readinessProbe:
            httpGet:
              path: /health
              port: 3000
            initialDelaySeconds: 5
            periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
  name: mi-app-service
spec:
  selector:
    app: mi-app
  ports:
    - port: 80
      targetPort: 3000
  type: ClusterIP

🚀 Dato Clave

SIEMPRE define resources requests y limits. Sin limits, un pod puede consumir toda la memoria del nodo y tumbar otros servicios. Sin requests, el scheduler no puede distribuir carga eficientemente.

# Comandos kubectl esenciales
kubectl apply -f deployment.yml
kubectl get pods
kubectl describe pod mi-app-xxxxx
kubectl logs mi-app-xxxxx -f
kubectl exec -it mi-app-xxxxx -- sh
kubectl rollout status deployment/mi-app
kubectl rollout undo deployment/mi-app
Kubernetes cluster

Con estos fundamentos puedes desplegar aplicaciones en cualquier cluster Kubernetes.