Escalado y gestión de Pods con Despliegues (Deployments)

KubernetesKubernetesBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo escalar y gestionar Pods con Despliegues (Deployments) en Kubernetes. Los Despliegues son una abstracción de nivel superior que te permite gestionar y escalar de forma declarativa conjuntos de réplicas de Pods. Al utilizar Despliegues, puedes actualizar fácilmente tu aplicación a una nueva versión, revertir a una versión anterior y escalar tu aplicación hacia arriba o hacia abajo para satisfacer la demanda cambiante.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("Kubernetes")) -.-> kubernetes/BasicCommandsGroup(["Basic Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedCommandsGroup(["Advanced Commands"]) kubernetes(("Kubernetes")) -.-> kubernetes/BasicsGroup(["Basics"]) kubernetes(("Kubernetes")) -.-> kubernetes/AdvancedDeploymentGroup(["Advanced Deployment"]) kubernetes(("Kubernetes")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["Troubleshooting and Debugging Commands"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("Initialization") kubernetes/BasicCommandsGroup -.-> kubernetes/get("Get") kubernetes/BasicCommandsGroup -.-> kubernetes/create("Create") kubernetes/BasicCommandsGroup -.-> kubernetes/delete("Delete") kubernetes/BasicCommandsGroup -.-> kubernetes/edit("Edit") kubernetes/AdvancedCommandsGroup -.-> kubernetes/apply("Apply") kubernetes/AdvancedDeploymentGroup -.-> kubernetes/rollout("Rollout") kubernetes/AdvancedDeploymentGroup -.-> kubernetes/scale("Scale") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("Describe") subgraph Lab Skills kubernetes/initialization -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/get -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/create -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/delete -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/edit -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/apply -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/rollout -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/scale -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} kubernetes/describe -.-> lab-9675{{"Escalado y gestión de Pods con Despliegues (Deployments)"}} end

Iniciar el clúster de Minikube

Antes de crear recursos, necesitas un clúster de Kubernetes en ejecución. Minikube es un entorno ligero de Kubernetes que se ejecuta en tu máquina local.

  1. Navegar a tu directorio de trabajo:

    Abre la terminal y navega hasta la carpeta de proyecto predeterminada:

    cd /home/labex/project
  2. Iniciar Minikube:

    Inicia Minikube para inicializar un clúster de Kubernetes:

    minikube start
    • Este comando configura un clúster de Kubernetes de un solo nodo en tu máquina local.
    • Minikube puede tardar unos minutos en iniciar, dependiendo del rendimiento de tu sistema.
  3. Verificar que Minikube está en ejecución:

    Comprueba el estado del clúster de Minikube:

    minikube status
    • Busca componentes como kubelet y apiserver listados como Running (En ejecución).
    • Si el clúster no está en ejecución, vuelve a ejecutar minikube start.

Si encuentras problemas al iniciar Minikube, utiliza minikube delete para restablecer el entorno si es necesario.

Crear un Despliegue (Deployment)

  1. Crea un archivo llamado my-deployment.yaml en /home/labex/project/ con el siguiente contenido:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: nginx:latest
          ports:
            - containerPort: 80

Este archivo YAML define un Despliegue (Deployment) con 3 réplicas, ejecutando un contenedor Nginx. El campo selector selecciona los Pods controlados por el Despliegue basado en la etiqueta app.

  1. Despliega el Despliegue my-deployment:
kubectl apply -f my-deployment.yaml

Esto creará el Despliegue my-deployment y sus conjuntos de réplicas (ReplicaSets) y Pods asociados.

  1. Verifica que el Despliegue se haya creado:
kubectl get deployments

Esto mostrará los Despliegues en tu clúster, incluyendo el Despliegue my-deployment.

Escalar el Despliegue (Deployment)

  1. Escala el Despliegue my-deployment a 5 réplicas:
kubectl scale deployment my-deployment --replicas=5

Esto aumentará el número de réplicas en el Despliegue my-deployment a 5.

  1. Verifica que el Despliegue se haya escalado:
kubectl get deployments

Esto mostrará los Despliegues en tu clúster, incluyendo el Despliegue my-deployment con 5 réplicas.

Actualizar el Despliegue (Deployment)

  1. Edita el Despliegue my-deployment para utilizar la imagen nginx:1.19:
kubectl edit deployment my-deployment

Esto abrirá el Despliegue en tu editor de texto predeterminado. Cambia el campo image a nginx:1.19 y guarda el archivo.

  1. Verifica que el Despliegue se haya actualizado:
kubectl rollout status deployment/my-deployment

Esto mostrará el estado del último lanzamiento (rollout) del Despliegue my-deployment.

Revertir el Despliegue (Deployment)

  1. Revertir el Despliegue my-deployment a la versión anterior:
kubectl rollout undo deployment/my-deployment

Esto revertirá el Despliegue my-deployment a la versión anterior.

  1. Verificar que el Despliegue se haya revertido:
kubectl rollout status deployment/my-deployment

Esto mostrará el estado del último lanzamiento (rollout) del Despliegue my-deployment.

Limpieza

  1. Elimina el Despliegue (Deployment) my-deployment:
kubectl delete deployment my-deployment

Esto eliminará el Despliegue my-deployment y sus Conjuntos de Réplicas (ReplicaSets) y Pods asociados.

Resumen

En este laboratorio, aprendiste cómo crear y gestionar Despliegues (Deployments) en Kubernetes. Creaste un Despliegue con 3 réplicas, escalaste el Despliegue a 5 réplicas, actualizaste el Despliegue para utilizar una imagen diferente, revertiste el Despliegue a la versión anterior.