From dd3f07e5b73ab51be1b01543086b22acd6d35795 Mon Sep 17 00:00:00 2001 From: Willem Date: Thu, 9 Oct 2025 15:28:42 -0400 Subject: [PATCH] doc for removing worker flag from cp on UPI --- docs/doc-remove-worker-flag.md | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 docs/doc-remove-worker-flag.md diff --git a/docs/doc-remove-worker-flag.md b/docs/doc-remove-worker-flag.md new file mode 100644 index 0000000..bdb45a7 --- /dev/null +++ b/docs/doc-remove-worker-flag.md @@ -0,0 +1,58 @@ +1. ### **Titre : Retrait du flag *worker* sur les control planes (UPI)** + +1. ### **Contexte** + Dans certaines installations OpenShift UPI, les nodes de control plane (masters) héritent par erreur du label worker (node-role.kubernetes.io/worker).\ + Cela provoque la planification de workloads non critiques (par ex. routers, Ceph pods, etc.) sur les control planes, ce qui compromet la stabilité et la séparation des rôles. + +1. ### **Symptômes observés** +- Apres avoir ajouté des serveur dans HAProxy, tous les serveurs backend (wk0, wk1, wk2) apparaissent en état DOWN.\ + Le trafic HTTP/HTTPS est redirigé vers les control planes au lieu des workers. +- Les pods router-default sont déployés sur cp1 et cp2 plutôt que sur les workers. +- Sur les masters, la commande suivante montre une écoute sur le port 80 : + + ss -tlnp | grep 80 + + -> processus haproxy en écoute sur 0.0.0.0:80 + + -> meme chose pour port 443 + +- Dans le namespace rook-ceph, certains pods (mon, mgr, operator) ne se planifient pas, sont aussi deployé sur les cp au lieu des worker nodes : + +1. ### **Cause** + En installation UPI, les rôles (master, worker) ne sont pas gérés par le Machine Config Operator (MCO).\ + Les controls planes sont schedulable par default. Qui amene les trois roles, worker, master et control-plane. + +1. ### **Diagnostic** +1. Vérifier les labels du node : + + oc get nodes --show-labels | grep control-plane + +1. Inspecter la configuration du kubelet : + + cat /etc/systemd/system/kubelet.service + + Rechercher la ligne : + + --node-labels=node-role.kubernetes.io/control-plane,node-role.kubernetes.io/master,node-role.kubernetes.io/worker + + → présence du label worker confirme le problème. + +1. Vérifier que ce flag ne provient pas du MCO : + + oc get machineconfig | grep rendered-master + +**Solution:**\ +Pour rendre les **control planes non planifiables** (c’est-à-dire empêcher tout déploiement de workloads dessus), il faut appliquer le patch suivant sur la ressource scheduler du cluster :\ +\``` +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +oc patch scheduler cluster --type merge -p '{"spec":{"mastersSchedulable":false}}'\ +\```\ +Cette commande **désactive la planification sur les masters** et **supprime efficacement le rôle worker** de leurs fonctions. + +Une fois le patch appliqué, il faut **déplacer les workloads** encore présents sur les control planes vers les **workers** à l’aide des commandes : + +\```\ +oc adm cordon \ +oc adm drain --ignore-daemonsets –delete-emptydir-data\ +\``` +