En este tema, aprenderemos cómo desplegar una aplicación web en un clúster de Kubernetes. Cubriremos los siguientes puntos:

  1. Preparación del Entorno
  2. Creación del Dockerfile
  3. Construcción y Publicación de la Imagen Docker
  4. Creación de Manifiestos de Kubernetes
  5. Despliegue de la Aplicación
  6. Verificación del Despliegue
  7. Exposición de la Aplicación al Exterior

  1. Preparación del Entorno

Antes de comenzar, asegúrate de tener instalado y configurado lo siguiente:

  • Docker
  • Kubernetes (minikube o un clúster real)
  • kubectl

  1. Creación del Dockerfile

Primero, necesitamos crear un Dockerfile para nuestra aplicación web. Supongamos que tenemos una aplicación web simple escrita en Node.js. Aquí está un ejemplo de Dockerfile:

# Usa una imagen base de Node.js
FROM node:14

# Establece el directorio de trabajo
WORKDIR /app

# Copia el package.json y package-lock.json
COPY package*.json ./

# Instala las dependencias
RUN npm install

# Copia el resto de la aplicación
COPY . .

# Expone el puerto en el que la aplicación correrá
EXPOSE 3000

# Comando para correr la aplicación
CMD ["node", "app.js"]

  1. Construcción y Publicación de la Imagen Docker

Construye la imagen Docker y publícala en un registro de contenedores (Docker Hub, Google Container Registry, etc.).

# Construye la imagen
docker build -t <tu-usuario>/mi-aplicacion-web:1.0 .

# Inicia sesión en Docker Hub
docker login

# Publica la imagen
docker push <tu-usuario>/mi-aplicacion-web:1.0

  1. Creación de Manifiestos de Kubernetes

Necesitamos crear los manifiestos de Kubernetes para desplegar nuestra aplicación. Crearemos un Deployment y un Service.

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mi-aplicacion-web
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mi-aplicacion-web
  template:
    metadata:
      labels:
        app: mi-aplicacion-web
    spec:
      containers:
      - name: mi-aplicacion-web
        image: <tu-usuario>/mi-aplicacion-web:1.0
        ports:
        - containerPort: 3000

service.yaml

apiVersion: v1
kind: Service
metadata:
  name: mi-aplicacion-web
spec:
  selector:
    app: mi-aplicacion-web
  ports:
    - protocol: TCP
      port: 80
      targetPort: 3000
  type: LoadBalancer

  1. Despliegue de la Aplicación

Aplica los manifiestos de Kubernetes para desplegar la aplicación.

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

  1. Verificación del Despliegue

Verifica que los pods estén corriendo correctamente.

kubectl get pods

Verifica que el servicio esté creado y tenga una IP asignada.

kubectl get services

  1. Exposición de la Aplicación al Exterior

Si estás usando minikube, puedes exponer el servicio usando el siguiente comando:

minikube service mi-aplicacion-web

Esto abrirá tu navegador web y te llevará a la URL donde tu aplicación está corriendo.

Conclusión

En esta sección, hemos cubierto cómo desplegar una aplicación web en Kubernetes. Aprendimos a crear un Dockerfile, construir y publicar una imagen Docker, crear manifiestos de Kubernetes, desplegar la aplicación y verificar el despliegue. Ahora deberías tener una comprensión básica de cómo desplegar aplicaciones web en Kubernetes.

En el siguiente tema, exploraremos cómo integrar CI/CD con Kubernetes para automatizar el despliegue de aplicaciones.

Curso de Kubernetes

Módulo 1: Introducción a Kubernetes

Módulo 2: Componentes Principales de Kubernetes

Módulo 3: Gestión de Configuración y Secretos

Módulo 4: Redes en Kubernetes

Módulo 5: Almacenamiento en Kubernetes

Módulo 6: Conceptos Avanzados de Kubernetes

Módulo 7: Monitoreo y Registro

Módulo 8: Seguridad en Kubernetes

Módulo 9: Escalado y Rendimiento

Módulo 10: Ecosistema y Herramientas de Kubernetes

Módulo 11: Estudios de Caso y Aplicaciones del Mundo Real

Módulo 12: Preparación para la Certificación de Kubernetes

© Copyright 2024. Todos los derechos reservados