Despliegue de contenedores con Docker Compose y Kubernetes

Aprende a orquestar contenedores usando Docker Compose y migrarlos a Kubernetes para producción escalable.

Despliegue de contenedores con Docker Compose y Kubernetes

Docker Compose facilita el desarrollo y prueba de aplicaciones multi-contenedor, mientras Kubernetes permite escalar y gestionar producción de forma automatizada.

Docker Compose

Instalación

1
2
sudo apt install docker-compose -y
docker-compose --version

Archivo docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
version: '3.9'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: example

Comandos útiles

1
2
3
docker-compose up -d
docker-compose logs
docker-compose down

Migración a Kubernetes

Crear Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
      - name: web
        image: nginx:latest
        ports:
        - containerPort: 80

Crear Service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  selector:
    app: web
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Buenas prácticas

  • Versionar manifiestos en Git
  • Configurar namespaces por entorno
  • Utilizar ConfigMaps y Secrets para configuración y credenciales
  • Hacer health checks y readiness probes

Conclusión

Docker Compose es excelente para desarrollo, y Kubernetes para producción escalable, combinando ambos permite flujo completo CI/CD.