Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

247
Views
¿Cómo revertir una implementación a una revisión anterior automáticamente cuando la implementación ha cruzado 'progressDeadlineSeconds'?

Estoy trabajando en la implementación de una imagen acoplable en kubernetes. La primera vez que implementé el contenedor, usé:

 kubectl apply -f <deployment_file>.yaml

y el contenedor se implementó correctamente en un pod.

Además, el archivo_despliegue se parece a esto:

 apiVersion: apps/v1beta1 kind: Deployment metadata: name: publisher spec: replicas: 2 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 minReadySeconds: 300 progressDeadlineSeconds: 900 template: metadata: labels: app: publisher spec: containers: - name: publisher image: 123dev.azurecr.io/publisher:{{ci-build-number}} env: - name: ENVIRONMENT value: "dev" ports: - containerPort: 8080

He definido el atributo 'progressDeadlineSeconds' en el archivo yaml anterior.

Para realizar un seguimiento de la implementación, utilicé:

 kubectl rollout status deployment.v1beta1.apps/publisher

Ahora, si quiero actualizar el contenedor con una nueva imagen, puedo volver a usar el comando

 kubectl apply -f <deployment_file>.yaml

para aplicar la actualización.

Pero, ¿qué pasa si la aplicación de la actualización falla debido a algún motivo (digamos que la imagen de la ventana acoplable está dañada), hay alguna manera de activar automáticamente una reversión a la revisión anterior cuando el estado de los pods no está configurado como 'en ejecución' O el tiempo de ejecución se cruza? 'pregressDeadlineSeconds'?

Hasta ahora no he encontrado una forma de ejecutar una reversión automáticamente. Los pensamientos serían apreciados.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

siga los pasos a continuación.

 1. append the --record param to deployment, as shown below kubectl apply -f <deployment_file>.yaml --record 2. kubectl rollout history deploy <deployment-name> to check deployment history. for example, kubectl rollout history deploy mynginx deployments "mynginx" REVISION CHANGE-CAUSE 3 kubectl set image deploy mynginx mynginx=nginx:1.12.2 4 kubectl set image deploy mynginx mynginx=nginx:1.13.8 3. you can rollback to previous version using revision, say to revision 3 kubectl rollout undo deploy mynginx --to-revision=3
over 4 years ago · Santiago Trujillo Report

0

Después del comando kubectl apply , puede verificar si la implementación se implementó correctamente o no y luego, si es necesario, el kubectl rollout undo puede retroceder a la revisión anterior. Además, puede usar el comando de sleep de Linux para esperar un tiempo antes de eso.

En Linux:

 sleep 900 && \ if [[ $(timeout 5 kubectl rollout status -f <deployment_file>.yaml) != *"successfully rolled out"* ]]; then kubectl rollout undo -f <deployment_file>.yaml fi > /dev/null 2>&1 &

timeout 5 detiene el estado de implementación de kubectl rollout status si se atasca después de 5 segundos.

> /dev/null 2>&1 & ejecuta el comando en segundo plano y sin salida de terminal.

over 4 years ago · Santiago Trujillo Report

0

Estos son los pasos que sigo para deshacer el lanzamiento de una implementación

Aquí client-depl es el nombre de la implementación.

Paso.1 Para obtener la lista del historial de una implementación específica, use este comando

 kubectl rollout history deploy client-depl

después de eso obtendrás una salida como esta.

imagen de implementación del historial de implementación

así que digamos que quiero implementar la implementación en la REVISIÓN 1 y luego usar este comando

 $ kubectl rollout undo deploy client-depl --to-revision=1

después de eso obtendrás un resultado como este

imagen de reversión de implementación

Felicitaciones, ha implementado con éxito la implementación a la versión anterior. Para cualquier duda por favor responda será un placer ayudarle.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!