Dire quand le Travail est terminé
Je suis à la recherche d'un moyen de dire (à partir d'un script) lorsqu'un Kubernetes le Travail est terminé. Je veux, puis obtenir les journaux à l'extérieur des conteneurs et effectuer le nettoyage.
Ce serait une bonne façon de le faire? Serait la meilleure façon d'exécuter kubectl describe job <job_name>
et grep pour 1 Succeeded
ou quelque chose du genre?
Vous devez vous connecter pour publier un commentaire.
Depuis la version 1.11, vous pouvez le faire:
et vous pouvez également définir un délai d'attente:
--timeout
est de 30 secondes. En spécifiant des valeurs négatives pour les--timeout
signifie "attendre une semaine" (qui est, en pratique, presque indéfinie). Jetez un oeil à la kubectl attendre de référence.Vous pouvez regarder un état de la tâche avec cette commande:
La
-w
option de montres pour les changements. Vous êtes à la recherche pour leSUCCESSFUL
colonne de montrer1
.Pour les en attente dans un script shell, je voudrais utiliser cette commande:
status.succeeded = 1
?.status.conditions[?
?Vous pouvez utiliser officiel
Python kubernetes-client
.https://github.com/kubernetes-client/python
Créer de nouveaux Python virtualenv:
virtualenv -p python3 kubernetes_venv
activer avec
source kubernetes_venv/bin/activate
et installer kubernetes client:
pip install kubernetes
Créer de nouveaux Python script et l'exécuter:
N'oubliez pas de configurer votre
kubeconfig
dans~/.kube/config
et valeur valide pour votre travail de noms ->'<YOUR-JOB-NAMESPACE>'
Je voudrais utiliser
-w
ou--watch
: