web-dev-qa-db-fra.com

Comment redémarrer le pod dans OpenShift?

J'ai mis à jour un fichier (pour la sortie de débogage) dans un pod en cours d'exécution, mais il n'est pas reconnu. J'allais redémarrer le pod pour le faire prendre mais je ne vois que oc stop et pas oc start ou oc restart. Comment forcer un rafraîchissement des fichiers dans le pod?

Je pense que c'est peut-être une chose Ruby (comme opcache en PHP). Mais je pensais qu'un redémarrage du pod le gérerait. Je ne peux pas comprendre comment redémarrer un pod.

7
Elijah Lynn

Vous devez effectuer vos modifications dans la configuration de déploiement, mais pas dans le module. Parce que OpenShift traite les pods comme largement immuables; aucune modification ne peut être apportée à une définition de module pendant son exécution. https://docs.openshift.com/enterprise/3.0/architecture/core_concepts/pods_and_services.html#pods

Si vous apportez des modifications dans la configuration de déploiement et les enregistrez, le pod redémarrera et vos modifications prendront effet:

oc edit dc "deploy-config-example"

Si vous changez quelque chose dans les volumes ou les configmaps, vous devez supprimer le pod pour son redémarrage:

oc delete pod "name-of-your-pod"

Et le pod va redémarrer. Ou mieux encore déclencher un nouveau déploiement en exécutant:

oc rollout latest "deploy-config-example"

En utilisant oc rollout est préférable car il redéploiera tous les pods si vous avez une application mise à l'échelle, et vous n'avez pas besoin d'identifier chaque pod et de le supprimer.

7
Ripper Tops

Vous pouvez réduire (à zéro) les déploiements, puis à nouveau:

oc get deployments -n <your project> -o wide

oc get pods -n <your project> -o wide

oc scale --replicas=0 deployment/<your deployment> -n <your project>

oc scale --replicas=1 deployment/<your deployment> -n <your project>

watch oc get pods -n <your project> # wait until your deployment is up again
1
Noam Manos