Pide tu presupuesto ya!

Aprendiendo la estrategia de implementación Blue Green de Kubernetes

Preparando el despliegue verde

Después de la meticulosa preparación del despliegue azul, ahora se centrará en preparar el escenario paralelo al despliegue azul para una transición impecable. Prepararás la implementación ecológica, minimizando las interrupciones y maximizando la eficiencia en tu entorno de Kubernetes.

Mientras que la implementación azul representa la versión actual y estable de su aplicación, la implementación verde presenta una nueva versión. Esta versión está preparada para ser probada y eventualmente promocionada para atender el tráfico de producción.

Para preparar la implementación ecológica, necesitará otro archivo de configuración YAML que defina las decisiones de enrutamiento del tráfico con lo siguiente:

1. Crea un archivo llamado implementación-verde.yaml y agregue los siguientes ajustes de configuración.

Esta configuración inicia una implementación NGINX actualizada (mercybassey/nginx-green:v1) como el despliegue verde, que se distingue por una version: green etiqueta. Esta etiqueta actúa como GPS para las decisiones de ruta del tráfico, lo que facilita la identificación y gestión rápida de las versiones de implementación.

# Define the API version and kind for the Deployment resource.
apiVersion: apps/v1
kind: Deployment
metadata:
  # Specify the name of the Deployment resource.
  name: nginx-deployment-green 
spec:
  # Set the desired number of replicas for the NGINX Deployment to 3.
  replicas: 3
  selector:
    matchLabels:
      # Define the labels to match the pod selection.
      app: nginx-deployment
      version: green
  template:
    metadata:
      labels:
        # Apply labels to the pods managed by this Deployment.
        app: nginx-deployment
        version: green
    spec:
      containers:
      - name: nginx
        # Define the NGINX container image to use for the Deployment.
        image: mercybassey/nginx-green:v1
        ports:
        - containerPort: 80

2. A continuación, ejecute los siguientes comandos para apply las configuraciones de implementación contra el green-deployment.yaml archivo y get todo pods disponible.

# Apply the green deployment configuration to your Kubernetes cluster
kubectl apply -f green-deployment.yaml

# View the pods belonging to the green deployment
kubectl get pods -l version=green

Anote uno de los nombres del módulo de implementación verde, ya que lo necesitará para probar la implementación más adelante.

Crear y verificar la implementación verde

3. Una vez implementado, ejecute los siguientes comandos para asegurarse de que todo funcione bien antes de dirigir el tráfico a la implementación recién actualizada.

Asegúrese de reemplazar <green-pod-name> con el nombre del pod de implementación verde que anotó en el paso dos.

# Find a Pod from the green deployment
kubectl get pods -l app=nginx-deployment,version=green

# Forward local port 8080 to port 80 on the green Pod
kubectl port-forward pod/<green-pod-name> 8080:80
Verificar la funcionalidad de la implementación verde
Verificar la funcionalidad de la implementación verde

4. Ahora, ejecuta el curl comando a continuación o visite http://localhost:8080 en su navegador para acceder a la implementación ecológica localmente.

Es crucial validar minuciosamente la implementación ecológica en este entorno aislado antes de proceder a dirigir el tráfico en vivo hacia él. Al hacerlo, se minimiza el riesgo de introducir errores o tiempo de inactividad en su entorno de producción.

curl http://localhost:8080
Accediendo al servicio NGINX localmente a través de curl
Accediendo al servicio NGINX localmente a través de curl
Ver el servicio NGINX a través de un navegador web
Ver el servicio NGINX a través de un navegador web

💡 En este punto, se deben realizar otras pruebas y validaciones para garantizar que la implementación ecológica cumpla con todos los criterios operativos, funcionales y de rendimiento. Este paso puede incluir pruebas automatizadas para respuestas de API, comprobaciones manuales de la interfaz de usuario, análisis de vulnerabilidades de seguridad y evaluaciones comparativas de rendimiento.

5. Dado que la implementación ecológica funciona, actualice la servicio.yaml configuración selector hacer coincidir las etiquetas del despliegue verde con lo siguiente.

  selector:
    app: nginx-deployment
    version: green

6. A continuación, ejecute el siguiente comando para apply los cambios en el service.yaml configuración.

La aplicación de los cambios hace que Kubernetes redirija todo el tráfico entrante a los pods de la implementación verde según el selector actualizado.

kubectl apply -f service.yaml 
Reconfigurando el selector de servicios
Reconfigurando el selector de servicios

7. Con el servicio actualizado, ejecute cada comando a continuación para verificar que el tráfico se enrute correctamente a la implementación ecológica.

# Attach to the "curl" running pod using the "curl" container.
kubectl attach curl -c curl -i -t

# Send an HTTP GET request to the specified IP address.
curl http://10.97.158.242

# Exit the curl pod.
exit

El resultado a continuación confirma que ha actualizado correctamente el selector de servicios y que el tráfico ahora se envía a la implementación actualizada (verde).

La implementación ecológica permite una validación y pruebas exhaustivas en un entorno similar a la producción sin afectar la versión en vivo. En este punto, puede eliminar la implementación anterior (azul) o mantenerla en espera para poder retroceder si algo sale mal.

Verificando el servicio NGINX
Verificando el servicio NGINX
Written by

Leave a comment