Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
elearning:workbooks:kubernetes:k8s01 [2022/09/04 11:46] – admin | elearning:workbooks:kubernetes:k8s01 [2024/12/18 13:32] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
- | Version - **2022.03** | + | Version - **2024.01** |
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
- | ======DOF302 - Gestion des PODs, Contrôleurs de Réplication, | + | ======DOF302 - Gestion des PODs, Contrôleurs de Réplication, |
=====Contenu du Module===== | =====Contenu du Module===== | ||
- | * **DOF302 - Gestion des PODs, Contrôleurs de Réplication, | + | * **DOF302 - Gestion des PODs, Contrôleurs de Réplication, |
* Contenu du Module | * Contenu du Module | ||
* LAB #1 - Création d'un POD | * LAB #1 - Création d'un POD | ||
Ligne 33: | Ligne 33: | ||
* Rolling Updates | * Rolling Updates | ||
* Rollbacks | * Rollbacks | ||
+ | * LAB #4 - Gestion de la Maintenance | ||
+ | * 4.1 - La Commande drain | ||
+ | * 4.2 - La Commande uncordon | ||
+ | * LAB #5 - Gestion des Mises-à-jour | ||
+ | * 5.1 - Mise-à-jour de kubeadm | ||
+ | * 5.2 - Mise-à-jour des Travailleurs | ||
+ | |||
+ | =====Ressources===== | ||
+ | |||
+ | ====Lab #1===== | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | ====Lab #2==== | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | ====Lab #3==== | ||
+ | |||
+ | * https:// | ||
=====LAB #1 - Création d'un POD===== | =====LAB #1 - Création d'un POD===== | ||
Ligne 1245: | Ligne 1266: | ||
6 | 6 | ||
</ | </ | ||
+ | |||
+ | =====LAB #4 - Gestion de la Maintenance===== | ||
+ | |||
+ | Afin de procéder à la maintenance d'un noeud, il est souvent nécessaire de le sortir du cluster. Cette opération s' | ||
+ | |||
+ | ====4.1 - La Commande drain==== | ||
+ | |||
+ | Constatez l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAMESPACE | ||
+ | default | ||
+ | default | ||
+ | default | ||
+ | default | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que sur **kubenode1.ittraining.loc**, | ||
+ | </ | ||
+ | |||
+ | Procédez maintenant au drain de kubenode1.ittraining.loc : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | error: unable to drain node " | ||
+ | There are pending nodes to be drained: | ||
+ | | ||
+ | cannot delete Pods declare no controller (use --force to override): default/ | ||
+ | cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/ | ||
+ | </ | ||
+ | |||
+ | Notez que la commande retourne deux erreurs : | ||
+ | |||
+ | * cannot delete Pods declare no controller (use --force to override): default/ | ||
+ | * cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/ | ||
+ | | ||
+ | La première erreur est due au fait que l' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Le mot Controller implique un ReplicationController, | ||
+ | </ | ||
+ | |||
+ | La deuxième erreur est due au fait que l' | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Un DaemonSet contient des pods qui sont **liés** à des noeuds **spécifiques**. | ||
+ | </ | ||
+ | |||
+ | Exécutez donc la commande de nouveau en ajoutant les deux options **--ignore-daemonsets** et **--force** : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | WARNING: deleting Pods that declare no controller: default/ | ||
+ | evicting pod default/ | ||
+ | evicting pod default/ | ||
+ | pod/nginx evicted | ||
+ | pod/ | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que la commande n'a pas retourné d' | ||
+ | </ | ||
+ | |||
+ | Consultez de nouveau l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAMESPACE | ||
+ | default | ||
+ | default | ||
+ | default | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | kube-system | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que le pod **nginx** a été détruit tandis que le pod **myapp-deployment-57c6cb89d9-q7d4p** a été **expulsé**. Un nouveau pod dénommé **myapp-deployment-57c6cb89d9-l7lkd** a été créé sur **kubenode2.ittraining.loc** afin de maintenir le nombre à **3**. Les deux pods **calico-node-5htrc** et **kube-proxy-sn26v** ont été ignorés. | ||
+ | </ | ||
+ | |||
+ | Constatez maintenant l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAME STATUS | ||
+ | kubemaster.ittraining.loc | ||
+ | kubenode1.ittraining.loc | ||
+ | kubenode2.ittraining.loc | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que le STATUS de **kubenode1.ittraining.loc** est **SchedulingDisabled** ce qui implique que le noeud n' | ||
+ | </ | ||
+ | |||
+ | ====4.2 - La Commande uncordon==== | ||
+ | |||
+ | Pour permettre le noeud de recevoir de nouveau des pods, il convient d' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | Constatez de nouveau l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAME STATUS | ||
+ | kubemaster.ittraining.loc | ||
+ | kubenode1.ittraining.loc | ||
+ | kubenode2.ittraining.loc | ||
+ | </ | ||
+ | |||
+ | Dernièrement consultez de nouveau l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAME READY | ||
+ | myapp-deployment-57c6cb89d9-dh4cb | ||
+ | myapp-deployment-57c6cb89d9-f69nk | ||
+ | myapp-deployment-57c6cb89d9-l7lkd | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que l' | ||
+ | </ | ||
+ | |||
+ | =====LAB #5 - Gestion des Mises-à-jour===== | ||
+ | |||
+ | ====5.1 - Mise-à-jour de kubeadm==== | ||
+ | |||
+ | Commencez par modifier les sources de paquets : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | deb [signed-by=/ | ||
+ | |||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | deb http:// | ||
+ | deb-src http:// | ||
+ | deb [arch=amd64] https:// | ||
+ | |||
+ | root@kubemaster: | ||
+ | Ign:1 http:// | ||
+ | Atteint:2 http:// | ||
+ | Réception de:3 https:// | ||
+ | Réception de:4 https:// | ||
+ | Réception de:6 https:// | ||
+ | 67,3 ko réceptionnés en 0s (190 ko/s) | ||
+ | Lecture des listes de paquets... Fait | ||
+ | Construction de l' | ||
+ | Lecture des informations d' | ||
+ | 8 packages can be upgraded. Run 'apt list --upgradable' | ||
+ | </ | ||
+ | |||
+ | Afin de mettre à jour kubeadm, il convient de faire un drain du **Contrôleur** : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | WARNING: ignoring DaemonSet-managed Pods: kube-system/ | ||
+ | evicting pod kube-system/ | ||
+ | evicting pod kube-system/ | ||
+ | evicting pod kube-system/ | ||
+ | pod/ | ||
+ | pod/ | ||
+ | pod/ | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | Afin de connaître la ou les version(s) supérieure(s) à celle installée, utilisez la commande suivante : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Procédez maintenant à la mise-à-jour de kubeadm : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | Ign:1 http:// | ||
+ | Atteint:2 http:// | ||
+ | Réception de:3 https:// | ||
+ | Atteint:5 https:// | ||
+ | 44,8 ko réceptionnés en 0s (81,7 ko/s) | ||
+ | Lecture des listes de paquets... Fait | ||
+ | Lecture des listes de paquets... Fait | ||
+ | Construction de l' | ||
+ | Lecture des informations d' | ||
+ | Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires : | ||
+ | libjsoncpp1 linux-image-4.9.0-8-amd64 | ||
+ | Veuillez utiliser « apt autoremove » pour les supprimer. | ||
+ | Les paquets retenus suivants seront changés : | ||
+ | kubeadm | ||
+ | Les paquets suivants seront mis à jour : | ||
+ | kubeadm | ||
+ | 1 mis à jour, 0 nouvellement installés, 0 à enlever et 7 non mis à jour. | ||
+ | Il est nécessaire de prendre 9 219 ko dans les archives. | ||
+ | Après cette opération, 537 ko d' | ||
+ | Réception de:1 https:// | ||
+ | 9 219 ko réceptionnés en 0s (14,6 Mo/s) | ||
+ | apt-listchanges : Lecture des fichiers de modifications (« changelog »)... | ||
+ | (Lecture de la base de données... 137041 fichiers et répertoires déjà installés.) | ||
+ | Préparation du dépaquetage de .../ | ||
+ | Dépaquetage de kubeadm (1.25.0-2.1) sur (1.24.2-00) ... | ||
+ | dpkg: avertissement: | ||
+ | Paramétrage de kubeadm (1.25.0-2.1) ... | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que l' | ||
+ | </ | ||
+ | |||
+ | Vérifiez que la version désirée a été installée : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | kubeadm version: & | ||
+ | </ | ||
+ | |||
+ | Afin de connaître les version des composants du Control Plane compatibles avec la version 1.25.0 de kubeadm, utilisez la commande **kubeadm upgrade plan** : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | [upload-config] Storing the configuration used in ConfigMap " | ||
+ | [preflight] Running pre-flight checks. | ||
+ | [upgrade] Running cluster health checks | ||
+ | [upgrade] Fetching available versions to upgrade to | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | I0314 07: | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | |||
+ | Components that must be upgraded manually after you have upgraded the control plane with ' | ||
+ | COMPONENT | ||
+ | kubelet | ||
+ | |||
+ | Upgrade to the latest version in the v1.24 series: | ||
+ | |||
+ | COMPONENT | ||
+ | kube-apiserver | ||
+ | kube-controller-manager | ||
+ | kube-scheduler | ||
+ | kube-proxy | ||
+ | CoreDNS | ||
+ | etcd 3.5.3-0 | ||
+ | |||
+ | You can now apply the upgrade by executing the following command: | ||
+ | |||
+ | kubeadm upgrade apply v1.24.17 | ||
+ | |||
+ | _____________________________________________________________________ | ||
+ | |||
+ | Components that must be upgraded manually after you have upgraded the control plane with ' | ||
+ | COMPONENT | ||
+ | kubelet | ||
+ | |||
+ | Upgrade to the latest stable version: | ||
+ | |||
+ | COMPONENT | ||
+ | kube-apiserver | ||
+ | kube-controller-manager | ||
+ | kube-scheduler | ||
+ | kube-proxy | ||
+ | CoreDNS | ||
+ | etcd 3.5.3-0 | ||
+ | |||
+ | You can now apply the upgrade by executing the following command: | ||
+ | |||
+ | kubeadm upgrade apply v1.25.16 | ||
+ | |||
+ | Note: Before you can perform this upgrade, you have to update kubeadm to v1.25.16. | ||
+ | |||
+ | _____________________________________________________________________ | ||
+ | |||
+ | |||
+ | The table below shows the current state of component configs as understood by this version of kubeadm. | ||
+ | Configs that have a " | ||
+ | resetting to kubeadm defaults before a successful upgrade can be performed. The version to manually | ||
+ | upgrade to is denoted in the " | ||
+ | |||
+ | API GROUP | ||
+ | kubeproxy.config.k8s.io | ||
+ | kubelet.config.k8s.io | ||
+ | _____________________________________________________________________ | ||
+ | </ | ||
+ | |||
+ | Procédez donc à la mise-à-jour de kubeadm vers la version **1.25.0** : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | [preflight] Running pre-flight checks. | ||
+ | [upgrade] Running cluster health checks | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | [upgrade/ | ||
+ | [upgrade] Are you sure you want to proceed? [y/N]: y | ||
+ | </ | ||
+ | |||
+ | A l'issu de processus, vous verrez les deux lignes suivantes : | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | [upgrade/ | ||
+ | |||
+ | [upgrade/ | ||
+ | root@kubemaster: | ||
+ | </ | ||
+ | |||
+ | Mettez-à-jour maintenant **kubelet** et **kubectl** : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Au cas où le fichier du service de kubelet a subi des modifications, | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | </ | ||
+ | |||
+ | Annulez le drain de kubemaster : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | Constatez maintenant l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAME STATUS | ||
+ | kubemaster.ittraining.loc | ||
+ | kubenode1.ittraining.loc | ||
+ | kubenode2.ittraining.loc | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que le Control Plane est à la version 1.25.0 tandis que les Travailleurs sont à la version 1.24.2. | ||
+ | </ | ||
+ | |||
+ | ====5.2 - Mise-à-jour des Travailleurs==== | ||
+ | |||
+ | Afin de mettre à jour un Travailleur, | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | Warning: ignoring DaemonSet-managed Pods: kube-system/ | ||
+ | evicting pod kube-system/ | ||
+ | pod/ | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | Connectez-vous à kubenode1 : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | trainee@kubenode1' | ||
+ | Linux kubenode1.ittraining.loc 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 | ||
+ | |||
+ | The programs included with the Debian GNU/Linux system are free software; | ||
+ | the exact distribution terms for each program are described in the | ||
+ | individual files in / | ||
+ | |||
+ | Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | ||
+ | permitted by applicable law. | ||
+ | Last login: Thu Mar 14 06:43:48 2024 from 192.168.56.2 | ||
+ | trainee@kubenode1: | ||
+ | Mot de passe : | ||
+ | root@kubenode1: | ||
+ | </ | ||
+ | |||
+ | Commencez par modifier les sources de paquets : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | deb [signed-by=/ | ||
+ | |||
+ | root@kubenode1: | ||
+ | |||
+ | root@kubenode1: | ||
+ | deb http:// | ||
+ | deb-src http:// | ||
+ | deb [arch=amd64] https:// | ||
+ | |||
+ | root@kubenode1: | ||
+ | </ | ||
+ | |||
+ | Mettez-à-jour le paquet **kubeadm** : | ||
+ | |||
+ | < | ||
+ | root@kubenode1: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Mettez-à-jour la configuration de kubeadm : | ||
+ | |||
+ | < | ||
+ | root@kubenode1: | ||
+ | [upgrade] Reading configuration from the cluster... | ||
+ | [upgrade] FYI: You can look at this config file with ' | ||
+ | [preflight] Running pre-flight checks | ||
+ | [preflight] Skipping prepull. Not a control plane node. | ||
+ | [upgrade] Skipping phase. Not a control plane node. | ||
+ | [kubelet-start] Writing kubelet configuration to file "/ | ||
+ | [upgrade] The configuration for this node was successfully updated! | ||
+ | [upgrade] Now you should go ahead and upgrade the kubelet package using your package manager. | ||
+ | </ | ||
+ | |||
+ | Mettez-à-jour maintenant **kubelet** et **kubectl** : | ||
+ | |||
+ | < | ||
+ | root@kubenode1: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Au cas où le fichier du service de kubelet a subi des modifications, | ||
+ | |||
+ | < | ||
+ | root@kubenode1: | ||
+ | |||
+ | root@kubenode1: | ||
+ | </ | ||
+ | |||
+ | Retournez à la machine **kubemaster** : | ||
+ | |||
+ | < | ||
+ | root@kubenode1: | ||
+ | déconnexion | ||
+ | trainee@kubenode1: | ||
+ | déconnexion | ||
+ | Connection to kubenode1 closed. | ||
+ | root@kubemaster: | ||
+ | </ | ||
+ | |||
+ | Annulez le drain de kubenode1 : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | Constatez maintenant l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAME STATUS | ||
+ | kubemaster.ittraining.loc | ||
+ | kubenode1.ittraining.loc | ||
+ | kubenode2.ittraining.loc | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que le Control Plane et kubenode1 sont à la version 1.25.0 tandis que kubenode2 est à la version 1.24.2. | ||
+ | </ | ||
+ | |||
+ | Faites un drain du kubenode2 : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | Warning: ignoring DaemonSet-managed Pods: kube-system/ | ||
+ | evicting pod kube-system/ | ||
+ | evicting pod kube-system/ | ||
+ | pod/ | ||
+ | pod/ | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | Connectez-vous à kubenode2 : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | trainee@kubenode2' | ||
+ | Linux kubenode2.ittraining.loc 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 | ||
+ | |||
+ | The programs included with the Debian GNU/Linux system are free software; | ||
+ | the exact distribution terms for each program are described in the | ||
+ | individual files in / | ||
+ | |||
+ | Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | ||
+ | permitted by applicable law. | ||
+ | Last login: Thu Mar 14 06:45:08 2024 from 192.168.56.2 | ||
+ | trainee@kubenode2: | ||
+ | Mot de passe : | ||
+ | root@kubenode2: | ||
+ | </ | ||
+ | |||
+ | Commencez par modifier les sources de paquets : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | |||
+ | root@kubemaster: | ||
+ | deb [signed-by=/ | ||
+ | |||
+ | root@kubenode1: | ||
+ | |||
+ | root@kubenode1: | ||
+ | deb http:// | ||
+ | deb-src http:// | ||
+ | deb [arch=amd64] https:// | ||
+ | |||
+ | root@kubenode1: | ||
+ | </ | ||
+ | |||
+ | Mettez-à-jour le paquet **kubeadm** : | ||
+ | |||
+ | < | ||
+ | root@kubenode2: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Mettez-à-jour la configuration de kubeadm : | ||
+ | |||
+ | < | ||
+ | root@kubenode2: | ||
+ | [upgrade] Reading configuration from the cluster... | ||
+ | [upgrade] FYI: You can look at this config file with ' | ||
+ | [preflight] Running pre-flight checks | ||
+ | [preflight] Skipping prepull. Not a control plane node. | ||
+ | [upgrade] Skipping phase. Not a control plane node. | ||
+ | [kubelet-start] Writing kubelet configuration to file "/ | ||
+ | [upgrade] The configuration for this node was successfully updated! | ||
+ | [upgrade] Now you should go ahead and upgrade the kubelet package using your package manager. | ||
+ | </ | ||
+ | |||
+ | Mettez-à-jour maintenant **kubelet** et **kubectl** : | ||
+ | |||
+ | < | ||
+ | root@kubenode2: | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Au cas où le fichier du service de kubelet a subi des modifications, | ||
+ | |||
+ | < | ||
+ | root@kubenode2: | ||
+ | |||
+ | root@kubenode2: | ||
+ | </ | ||
+ | |||
+ | Retournez à la machine **kubemaster** : | ||
+ | |||
+ | < | ||
+ | root@kubenode2: | ||
+ | déconnexion | ||
+ | trainee@kubenode2: | ||
+ | déconnexion | ||
+ | Connection to kubenode2 closed. | ||
+ | root@kubemaster: | ||
+ | </ | ||
+ | |||
+ | Annulez le drain de kubenode1 : | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | node/ | ||
+ | </ | ||
+ | |||
+ | Constatez maintenant l' | ||
+ | |||
+ | < | ||
+ | root@kubemaster: | ||
+ | NAME STATUS | ||
+ | kubemaster.ittraining.loc | ||
+ | kubenode1.ittraining.loc | ||
+ | kubenode2.ittraining.loc | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | **Important** : Notez que tout a été mis-à-jour. | ||
+ | </ | ||
---- | ---- | ||
- | Copyright © 2022 Hugh Norris | + | Copyright © 2024 Hugh Norris |