6.2. En travaillant avec les nœuds
En tant qu’administrateur, vous pouvez effectuer plusieurs tâches pour rendre vos clusters plus efficaces. Il est possible d’utiliser la commande adm oc pour cordonner, uncordon et égoutter un nœud spécifique.
Le cordonnage et le drainage ne sont autorisés que sur les nœuds des travailleurs qui font partie des piscines de machines Red Hat OpenShift Cluster Manager.
6.2.1. Comprendre comment évacuer les pods sur les nœuds Copier lienLien copié sur presse-papiers!
Les gousses d’évacuation vous permettent de migrer toutes les gousses sélectionnées à partir d’un nœud ou d’un nœud donné.
Il est possible d’évacuer uniquement les pods soutenus par un contrôleur de réplication. Le contrôleur de réplication crée de nouveaux pods sur d’autres nœuds et supprime les pods existants du(s) nœud(s) spécifié(s).
Les pods nus, c’est-à-dire ceux qui ne sont pas soutenus par un contrôleur de réplication, ne sont pas affectés par défaut. Il est possible d’évacuer un sous-ensemble de gousses en spécifiant un pod-selector. Les sélecteurs de pod sont basés sur des étiquettes, de sorte que toutes les gousses avec l’étiquette spécifiée seront évacuées.
Procédure
Indiquez les nœuds imprévus avant d’effectuer l’évacuation de la gousse.
Indiquez le nœud comme imprévu:
oc adm cordon <node1>
$ oc adm cordon <node1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
node/<node1> cordoned
node/<node1> cordoned
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que l’état du nœud est prêt, programmantDisabled:
oc get node <node1>
$ oc get node <node1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME STATUS ROLES AGE VERSION <node1> Ready,SchedulingDisabled worker 1d v1.31.3
NAME STATUS ROLES AGE VERSION <node1> Ready,SchedulingDisabled worker 1d v1.31.3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Évacuer les gousses en utilisant l’une des méthodes suivantes:
Évacuer toutes les gousses sélectionnées sur un ou plusieurs nœuds:
oc adm drain <node1> <node2> [--pod-selector=<pod_selector>]
$ oc adm drain <node1> <node2> [--pod-selector=<pod_selector>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Forcez la suppression des gousses nues en utilisant l’option --force. Lorsqu’il est défini sur true, la suppression continue même s’il y a des pods non gérés par un contrôleur de réplication, un ensemble de répliques, une tâche, un jeu de démons ou un ensemble étatique:
oc adm drain <node1> <node2> --force=true
$ oc adm drain <node1> <node2> --force=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez une période de temps en secondes pour que chaque gousse se termine gracieusement, utilisez --grace-période. En cas de négatif, la valeur par défaut spécifiée dans le pod sera utilisée:
oc adm drain <node1> <node2> --grace-period=-1
$ oc adm drain <node1> <node2> --grace-period=-1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ignorez les gousses gérées par des ensembles de démons en utilisant le drapeau --ignore-daemonsets mis à vrai:
oc adm drain <node1> <node2> --ignore-daemonsets=true
$ oc adm drain <node1> <node2> --ignore-daemonsets=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Définissez la durée d’attente avant d’abandonner le drapeau --timeout. La valeur 0 définit une durée infinie:
oc adm drain <node1> <node2> --timeout=5s
$ oc adm drain <node1> <node2> --timeout=5s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Effacer les pods même s’il y a des pods utilisant des volumes emptyDir en définissant le drapeau --delete-emptydir-data sur true. Les données locales sont supprimées lorsque le nœud est vidé:
oc adm drain <node1> <node2> --delete-emptydir-data=true
$ oc adm drain <node1> <node2> --delete-emptydir-data=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Liste des objets qui seront migrés sans effectuer réellement l’évacuation, en utilisant l’option --dry-run définie à true:
oc adm drain <node1> <node2> --dry-run=true
$ oc adm drain <node1> <node2> --dry-run=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Au lieu de spécifier des noms de nœuds spécifiques (par exemple, <node1> <node2>), vous pouvez utiliser l’option --selector=<node_selector> pour évacuer les pods sur les nœuds sélectionnés.
Indiquez le nœud comme étant programmé lorsqu’il est fait.
oc adm uncordon <node1>
$ oc adm uncordon <node1>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow