doc for removing worker flag from cp on UPI #165
							
								
								
									
										58
									
								
								docs/doc-remove-worker-flag.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								docs/doc-remove-worker-flag.md
									
									
									
									
									
										Normal file
									
								
							| @ -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 <cp-node>\ | ||||||
|  | oc adm drain <cp-node> --ignore-daemonsets –delete-emptydir-data\ | ||||||
|  | \``` | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user