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:37] – 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 | + | * LAB #4 - Gestion de la Maintenance |
| - | | + | * 4.1 - La Commande drain |
| - | | + | * 4.2 - La Commande uncordon |
| - | * LAB #5 - Mise-à-jour | + | * LAB #5 - Gestion des Mises-à-jour |
| * 5.1 - Mise-à-jour de kubeadm | * 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 1251: | Ligne 1267: | ||
| </ | </ | ||
| - | =====LAB #4 - Gestion de la Maintenance | + | =====LAB #4 - Gestion de la Maintenance===== |
| - | Afin de procéer | + | Afin de procéder |
| ====4.1 - La Commande drain==== | ====4.1 - La Commande drain==== | ||
| Ligne 1263: | Ligne 1279: | ||
| NAMESPACE | NAMESPACE | ||
| default | default | ||
| - | default | + | default |
| - | default | + | default |
| default | default | ||
| kube-system | kube-system | ||
| Ligne 1282: | Ligne 1298: | ||
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| - | **Important** : Notez que sur **kubenode1.ittraining.loc**, | + | **Important** : Notez que sur **kubenode1.ittraining.loc**, |
| </ | </ | ||
| Ligne 1295: | Ligne 1311: | ||
| cannot delete Pods declare no controller (use --force to override): default/ | cannot delete Pods declare no controller (use --force to override): default/ | ||
| cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/ | cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/ | ||
| - | < | + | </code> |
| Notez que la commande retourne deux erreurs : | Notez que la commande retourne deux erreurs : | ||
| Ligne 1302: | Ligne 1318: | ||
| * cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/ | * cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/ | ||
| | | ||
| - | La première erreur est due au fait que l' | + | La première erreur est due au fait que l' |
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| Ligne 1355: | Ligne 1371: | ||
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| - | **Important** : Notez que le pod **nginx** a été détruit tandis que le pod **myapp-deployment-57c6cb89d9-f69nk** 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. | + | **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. |
| </ | </ | ||
| Ligne 1405: | Ligne 1421: | ||
| </ | </ | ||
| - | =====LAB #5 - Mise-à-jour | + | =====LAB #5 - Gestion des Mises-à-jour===== |
| ====5.1 - Mise-à-jour de kubeadm==== | ====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** : | Afin de mettre à jour kubeadm, il convient de faire un drain du **Contrôleur** : | ||
| Ligne 1414: | Ligne 1460: | ||
| root@kubemaster: | root@kubemaster: | ||
| node/ | node/ | ||
| - | WARNING: ignoring DaemonSet-managed Pods: kube-system/ | + | WARNING: ignoring DaemonSet-managed Pods: kube-system/ |
| - | evicting pod kube-system/ | + | evicting pod kube-system/ |
| - | evicting pod kube-system/ | + | evicting pod kube-system/ |
| - | evicting pod kube-system/ | + | evicting pod kube-system/ |
| - | pod/ | + | pod/ |
| - | pod/ | + | pod/ |
| - | pod/ | + | pod/ |
| node/ | node/ | ||
| </ | </ | ||
| Ligne 1427: | Ligne 1473: | ||
| < | < | ||
| - | + | root@kubemaster: | |
| - | root@kubemaster: | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | --Plus-- | + | |
| - | [q] | + | |
| </ | </ | ||
| - | |||
| - | <WRAP center round important 60%> | ||
| - | **Important** : Notez que la version la plus récente est la **1.25.0-00**. | ||
| - | </ | ||
| Procédez maintenant à la mise-à-jour de kubeadm : | Procédez maintenant à la mise-à-jour de kubeadm : | ||
| < | < | ||
| - | root@kubemaster: | + | root@kubemaster: |
| - | Atteint:1 http:// | + | Ign:1 http://archive.debian.org/ |
| - | Ign:2 http://ftp.fr.debian.org/ | + | Atteint:2 http://archive.debian.org/ |
| - | Atteint:3 http://ftp.fr.debian.org/ | + | Réception de:3 https:// |
| - | Atteint:4 http:// | + | Atteint:5 https://prod-cdn.packages.k8s.io/ |
| - | Réception de:5 https:// | + | 44,8 ko réceptionnés en 0s (81,7 ko/s) |
| - | Atteint:6 https:// | + | |
| - | 44,8 ko réceptionnés en 0s (80,5 ko/s) | + | |
| Lecture des listes de paquets... Fait | Lecture des listes de paquets... Fait | ||
| Lecture des listes de paquets... Fait | Lecture des listes de paquets... Fait | ||
| - | Construction de l' | + | Construction de l' |
| Lecture des informations d' | Lecture des informations d' | ||
| Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires : | Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires : | ||
| Ligne 1484: | Ligne 1513: | ||
| Les paquets suivants seront mis à jour : | Les paquets suivants seront mis à jour : | ||
| kubeadm | kubeadm | ||
| - | 1 mis à jour, 0 nouvellement installés, 0 à enlever et 5 non mis à jour. | + | 1 mis à jour, 0 nouvellement installés, 0 à enlever et 7 non mis à jour. |
| - | Il est nécessaire de prendre 9 213 ko dans les archives. | + | Il est nécessaire de prendre 9 219 ko dans les archives. |
| - | Après cette opération, | + | Après cette opération, |
| - | Réception de:1 https:// | + | Réception de:1 https://prod-cdn.packages.k8s.io/ |
| - | 9 213 ko réceptionnés en 0s (15,3 Mo/s) | + | 9 219 ko réceptionnés en 0s (14,6 Mo/s) |
| apt-listchanges : Lecture des fichiers de modifications (« changelog »)... | apt-listchanges : Lecture des fichiers de modifications (« changelog »)... | ||
| (Lecture de la base de données... 137041 fichiers et répertoires déjà installés.) | (Lecture de la base de données... 137041 fichiers et répertoires déjà installés.) | ||
| - | Préparation du dépaquetage de .../ | + | Préparation du dépaquetage de .../ |
| - | Dépaquetage de kubeadm (1.25.0-00) sur (1.24.2-00) ... | + | Dépaquetage de kubeadm (1.25.0-2.1) sur (1.24.2-00) ... |
| - | Paramétrage de kubeadm (1.25.0-00) ... | + | dpkg: avertissement: |
| + | Paramétrage de kubeadm (1.25.0-2.1) ... | ||
| </ | </ | ||
| Ligne 1520: | Ligne 1550: | ||
| [upgrade/ | [upgrade/ | ||
| [upgrade/ | [upgrade/ | ||
| - | [upgrade/ | + | I0314 07: |
| - | [upgrade/ | + | [upgrade/ |
| + | [upgrade/ | ||
| Components that must be upgraded manually after you have upgraded the control plane with ' | Components that must be upgraded manually after you have upgraded the control plane with ' | ||
| COMPONENT | COMPONENT | ||
| - | kubelet | + | kubelet |
| Upgrade to the latest version in the v1.24 series: | Upgrade to the latest version in the v1.24 series: | ||
| COMPONENT | COMPONENT | ||
| - | kube-apiserver | + | kube-apiserver |
| - | kube-controller-manager | + | kube-controller-manager |
| - | kube-scheduler | + | kube-scheduler |
| - | kube-proxy | + | kube-proxy |
| CoreDNS | CoreDNS | ||
| etcd 3.5.3-0 | etcd 3.5.3-0 | ||
| Ligne 1539: | Ligne 1570: | ||
| You can now apply the upgrade by executing the following command: | You can now apply the upgrade by executing the following command: | ||
| - | kubeadm upgrade apply v1.24.4 | + | kubeadm upgrade apply v1.24.17 |
| _____________________________________________________________________ | _____________________________________________________________________ | ||
| Ligne 1545: | Ligne 1576: | ||
| Components that must be upgraded manually after you have upgraded the control plane with ' | Components that must be upgraded manually after you have upgraded the control plane with ' | ||
| COMPONENT | COMPONENT | ||
| - | kubelet | + | kubelet |
| Upgrade to the latest stable version: | Upgrade to the latest stable version: | ||
| COMPONENT | COMPONENT | ||
| - | kube-apiserver | + | kube-apiserver |
| - | kube-controller-manager | + | kube-controller-manager |
| - | kube-scheduler | + | kube-scheduler |
| - | kube-proxy | + | kube-proxy |
| CoreDNS | CoreDNS | ||
| etcd 3.5.3-0 | etcd 3.5.3-0 | ||
| Ligne 1559: | Ligne 1590: | ||
| You can now apply the upgrade by executing the following command: | You can now apply the upgrade by executing the following command: | ||
| - | kubeadm upgrade apply v1.25.0 | + | kubeadm upgrade apply v1.25.16 |
| + | |||
| + | Note: Before you can perform this upgrade, you have to update kubeadm to v1.25.16. | ||
| _____________________________________________________________________ | _____________________________________________________________________ | ||
| Ligne 1573: | Ligne 1606: | ||
| kubelet.config.k8s.io | kubelet.config.k8s.io | ||
| _____________________________________________________________________ | _____________________________________________________________________ | ||
| - | |||
| </ | </ | ||
| Ligne 1604: | Ligne 1636: | ||
| < | < | ||
| - | root@kubemaster: | + | root@kubemaster: |
| ... | ... | ||
| </ | </ | ||
| Ligne 1619: | Ligne 1651: | ||
| < | < | ||
| + | root@kubemaster: | ||
| + | |||
| root@kubemaster: | root@kubemaster: | ||
| node/ | node/ | ||
| Ligne 1644: | Ligne 1678: | ||
| root@kubemaster: | root@kubemaster: | ||
| node/ | node/ | ||
| - | Warning: ignoring DaemonSet-managed Pods: kube-system/ | + | Warning: ignoring DaemonSet-managed Pods: kube-system/ |
| - | evicting pod kube-system/ | + | evicting pod kube-system/ |
| - | evicting pod kube-system/ | + | pod/ |
| - | pod/ | + | |
| - | pod/ | + | |
| node/ | node/ | ||
| </ | </ | ||
| - | Conectez-vous à kubenode1 : | + | Connectez-vous à kubenode1 : |
| < | < | ||
| root@kubemaster: | root@kubemaster: | ||
| - | trainee@kubenode1' | + | trainee@kubenode1' |
| Linux kubenode1.ittraining.loc 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 | Linux kubenode1.ittraining.loc 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 | ||
| Ligne 1665: | Ligne 1697: | ||
| Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | ||
| permitted by applicable law. | permitted by applicable law. | ||
| - | Last login: | + | Last login: |
| trainee@kubenode1: | trainee@kubenode1: | ||
| - | Mot de passe : fenestros | + | Mot de passe : |
| - | root@kubenode1: | + | 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: | ||
| </ | </ | ||
| Ligne 1674: | Ligne 1726: | ||
| < | < | ||
| - | root@kubenode1: | + | root@kubenode1: |
| ... | ... | ||
| </ | </ | ||
| - | Mettez-à-jour la configuration de kubelet | + | Mettez-à-jour la configuration de kubeadm |
| < | < | ||
| Ligne 1695: | Ligne 1747: | ||
| < | < | ||
| - | root@kubenode1: | + | root@kubenode1: |
| ... | ... | ||
| </ | </ | ||
| Ligne 1744: | Ligne 1796: | ||
| root@kubemaster: | root@kubemaster: | ||
| node/ | node/ | ||
| - | Warning: ignoring DaemonSet-managed Pods: kube-system/ | + | Warning: ignoring DaemonSet-managed Pods: kube-system/ |
| - | evicting pod kube-system/ | + | evicting pod kube-system/ |
| - | evicting pod default/ | + | evicting pod kube-system/ |
| - | evicting pod default/ | + | pod/ |
| - | evicting pod default/ | + | pod/ |
| - | evicting pod kube-system/ | + | |
| - | pod/ | + | |
| - | pod/ | + | |
| - | pod/ | + | |
| - | pod/ | + | |
| - | pod/ | + | |
| node/ | node/ | ||
| </ | </ | ||
| Ligne 1762: | Ligne 1808: | ||
| < | < | ||
| root@kubemaster: | root@kubemaster: | ||
| - | The authenticity of host ' | + | trainee@kubenode2' |
| - | ECDSA key fingerprint is SHA256: | + | |
| - | Are you sure you want to continue connecting (yes/no)? yes | + | |
| - | Warning: Permanently added ' | + | |
| - | trainee@kubenode2' | + | |
| Linux kubenode2.ittraining.loc 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 | Linux kubenode2.ittraining.loc 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64 | ||
| Ligne 1775: | Ligne 1817: | ||
| Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | ||
| permitted by applicable law. | permitted by applicable law. | ||
| - | Last login: | + | Last login: |
| trainee@kubenode2: | trainee@kubenode2: | ||
| - | Mot de passe : fenestros | + | Mot de passe : |
| root@kubenode2: | 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: | ||
| </ | </ | ||
| Ligne 1784: | Ligne 1846: | ||
| < | < | ||
| - | root@kubenode2: | + | root@kubenode2: |
| ... | ... | ||
| </ | </ | ||
| - | Mettez-à-jour la configuration de kubelet | + | Mettez-à-jour la configuration de kubeadm |
| < | < | ||
| Ligne 1805: | Ligne 1867: | ||
| < | < | ||
| - | root@kubenode2: | + | root@kubenode2: |
| ... | ... | ||
| </ | </ | ||
| Ligne 1848: | Ligne 1910: | ||
| **Important** : Notez que tout a été mis-à-jour. | **Important** : Notez que tout a été mis-à-jour. | ||
| </ | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | </ | ||
| ---- | ---- | ||
| - | Copyright © 2022 Hugh Norris | + | Copyright © 2024 Hugh Norris |