Aller au contenu

Pod Disruption Budget

Les Pods Disruption Budget permettent de limiter le nombre d'interruptions simultanées que peut subir une de vos applications, la rendant de ce fait plus resiliente tout en permettant aux administrateurs Caascad de votre cluster d'en gérer les nœuds.

Afin de permettre aux équipes Caascad d'assurer la maintenance opérationnelle de vos clusters, dans le cas où le nombre de réplicas est supérieur à 1, nous vous invitons à configurer les règles PDBs en utilisant le paramètre maxUnavailable. Sa valeur doit être égale ou supérieure à 1.

Vous pouvez vérifier le paramétrage avec la commande suivante :

kubectl get pdb -A | grep -v "kube-system"  

Vérification des pods en erreur

Selon le paramétrage des PDBs avec un maximum d'indisponibilité de 1, si un pod est en erreur sur un déploiement, cela empêchera les opérations côté Caascad. Merci de vérifier à intervalle régulier qu'il n'y a pas de pods en erreur durant trop longtemps (maximum 7 jours).

Pour vérifier, vous pouvez lancer la commande :

kubectl get pods -A | grep -v "Running\|CreatingContainer\|Init\|Completed"

Cas des pods mal terminés (Status Terminating)

Pour forcer un pod à se terminer, tentez d'abord d'y mettre fin en patchant le pod de sorte à supprimer ses finalizer, ce qui aura pour effet de mettre fin à la vie du pod :

kubectl patch pods <pod> -n <namespace> \
    --type json \
    --patch='[ { "op": "remove", "path": "/metadata/finalizers" } ]'

Si toutefois cette commande ne parvenait pas à supprimer le pod, vous pouvez, en dernier recours, forcer la suppression du pod avec la commande :

kubectl delete pods <pod_name> --grace-period=0 --force -n <namespace>