it-wiki:kubernetes:cluster_upgrade
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| it-wiki:kubernetes:cluster_upgrade [2022/11/16 07:28] – [Upgrade Master{2,. . . }] marko | it-wiki:kubernetes:cluster_upgrade [2024/02/07 07:11] (aktuell) – [Upgrade Worker Node] marko | ||
|---|---|---|---|
| Zeile 19: | Zeile 19: | ||
| === Den Master1 „drainen“ === | === Den Master1 „drainen“ === | ||
| Damit der Master1 ein Versions-Upgrade (oder auch Downgrade) erhalten kann, muss er | Damit der Master1 ein Versions-Upgrade (oder auch Downgrade) erhalten kann, muss er | ||
| - | zunächst mit '' | + | zunächst mit '' |
| - | nommen | + | |
| wie auf den Workern, jedoch beispielsweise der '' | wie auf den Workern, jedoch beispielsweise der '' | ||
| <code bash> | <code bash> | ||
| - | $ kubectl get pods -n kube-system -o wide --field-selector | + | $ kubectl get pods -n kube-system -o wide --field-selector |
| </ | </ | ||
| - | ^NAME ^READY ^STATUS ^RESTARTS ^AGE| | + | ^NAME ^READY ^STATUS ^RESTARTS ^AGE |
| |calico-node-vdm6g|1/ | |calico-node-vdm6g|1/ | ||
| |coredns-74ff55c5b-6k7rg|1/ | |coredns-74ff55c5b-6k7rg|1/ | ||
| Zeile 55: | Zeile 54: | ||
| <code bash>$ kubectl get nodes</ | <code bash>$ kubectl get nodes</ | ||
| - | ^NAME ^STATUS ^ROLES ^AGE ^VERSION| | + | ^NAME ^STATUS ^ROLES ^AGE ^VERSION |
| |master1|Ready, | |master1|Ready, | ||
| |master2|Ready|control-plane, | |master2|Ready|control-plane, | ||
| Zeile 62: | Zeile 61: | ||
| |worker2|Ready|< | |worker2|Ready|< | ||
| - | Die Version bezieht sich hier auf die Version des Kubelets auf den Nodes. Mit der Op- | + | Die Version bezieht sich hier auf die Version des Kubelets auf den Nodes. Mit der Option |
| - | tion '' | + | Betriebssystem, |
| - | Betriebssystem, | + | |
| - | weiligen | + | |
| Sollte der etcd-Cluster fehlerhaft sein und es kommt bei dem Upgrade zu einem Ausfall | Sollte der etcd-Cluster fehlerhaft sein und es kommt bei dem Upgrade zu einem Ausfall | ||
| des Nodes, so kann das Quorum zwischen den etcd-Clustereinheiten nicht ausgeführt | des Nodes, so kann das Quorum zwischen den etcd-Clustereinheiten nicht ausgeführt | ||
| Zeile 73: | Zeile 70: | ||
| <code bash>$ kubectl get pod -n kube-system --selector component=etcd</ | <code bash>$ kubectl get pod -n kube-system --selector component=etcd</ | ||
| - | ^NAME ^READY ^STATUS ^RESTARTS ^AGE| | + | ^NAME ^READY ^STATUS ^RESTARTS ^AGE |
| |etcd-master1|1/ | |etcd-master1|1/ | ||
| |etcd-master2|1/ | |etcd-master2|1/ | ||
| Zeile 206: | Zeile 203: | ||
| Der Node ist nun wieder einsatzbereit und auf die neue Version aktualisiert: | Der Node ist nun wieder einsatzbereit und auf die neue Version aktualisiert: | ||
| - | >code bash> | + | <code bash> |
| $ kubectl get nodes | $ kubectl get nodes | ||
| </ | </ | ||
| - | ^NAME ^STATUS ^ROLES ^AGE ^VERSION| | + | ^NAME ^STATUS ^ROLES ^AGE ^VERSION |
| |master1|Ready|control-plane, | |master1|Ready|control-plane, | ||
| |master2|Ready|control-plane, | |master2|Ready|control-plane, | ||
| Zeile 244: | Zeile 241: | ||
| $ kubectl get nodes master2 | $ kubectl get nodes master2 | ||
| </ | </ | ||
| - | ^NAME ^STATUS^ ROLES ^AGE ^VERSION| | + | ^NAME ^STATUS^ ROLES ^AGE ^VERSION |
| |master2|Ready, | |master2|Ready, | ||
| Zeile 255: | Zeile 252: | ||
| </ | </ | ||
| - | ^NAME ^READY ^STATUS ^RESTARTS ^AGE| | + | ^NAME ^READY ^STATUS ^RESTARTS ^AGE |
| |etcd-master1|1/ | |etcd-master1|1/ | ||
| |etcd-master2|1/ | |etcd-master2|1/ | ||
| Zeile 333: | Zeile 330: | ||
| $ kubectl get nodes | $ kubectl get nodes | ||
| </ | </ | ||
| - | ^NAME ^STATUS ^ROLES ^AGE ^VERSION| | + | ^NAME ^STATUS ^ROLES ^AGE ^VERSION |
| |master1|Ready|control-plane, | |master1|Ready|control-plane, | ||
| |master2|Ready|control-plane, | |master2|Ready|control-plane, | ||
| Zeile 340: | Zeile 337: | ||
| Für alle weiteren Master Nodes verfahren Sie nach in der gleichen Art. | Für alle weiteren Master Nodes verfahren Sie nach in der gleichen Art. | ||
| - | ==== Upgrade Data Plane ==== | + | ===== Upgrade Data Plane ===== |
| Das Upgrade der Data Plane besteht im Prinzip ausschließlich aus dem Angleichen der | Das Upgrade der Data Plane besteht im Prinzip ausschließlich aus dem Angleichen der | ||
| Version des kubelets der Worker Nodes auf die entsprechende Version der Master No- | Version des kubelets der Worker Nodes auf die entsprechende Version der Master No- | ||
| Zeile 347: | Zeile 344: | ||
| und er wieder ins Scheduling aufgenommen wird. | und er wieder ins Scheduling aufgenommen wird. | ||
| - | === Upgrade Worker Node ==== | + | ==== Upgrade Worker Node ===== |
| - | Node drainen | + | === Node drainen |
| + | Führen Sie '' | ||
| + | <code bash> | ||
| + | $ kubectl drain worker1 --ignore-daemonsets | ||
| + | node/ | ||
| + | WARNING: ignoring DaemonSet-managed Pods: | ||
| + | kube-system/ | ||
| + | evicting pod kube-system/ | ||
| + | evicting pod kube-system/ | ||
| + | pod/ | ||
| + | pod/ | ||
| + | node/ | ||
| + | </ | ||
| + | |||
| + | === Upgrade des kubelet === | ||
| + | Das Upgrade des '' | ||
| + | Version vorgenommen. Optional können auch die Pakete '' | ||
| + | neuen Version installiert werden. | ||
| + | Pakete im Paketmanager auf '' | ||
| + | <code bash> | ||
| + | $ sudo apt-mark unhold kubelet kubeadm kubectl | ||
| + | Canceled hold on kubelet | ||
| + | Canceled hold on kubeadm | ||
| + | Canceled hold on kubectl | ||
| + | </ | ||
| + | |||
| + | Anschließend werden die neuen Pakete installiert und dann wieder auf '' | ||
| + | <code bash> | ||
| + | $ sudo apt-get install kubelet=1.20.1-00 kubectl=1.20.1-00 | ||
| + | kubeadm=1.20.1-00 | ||
| + | $ sudo apt-mark hold kubeadm kubelet kubectl | ||
| + | kubeadm set on hold | ||
| + | kubelet set on hold | ||
| + | kubectl set on hold | ||
| + | </ | ||
| + | |||
| + | Nun wird der Node wieder „uncordoned“, | ||
| + | werden können: | ||
| + | <code bash> | ||
| + | $ kubectl uncordon worker1 | ||
| + | node/ | ||
| + | </ | ||
| + | |||
| + | Damit ist das Upgrade für den Worker abgeschlossen: | ||
| + | <code bash> | ||
| + | $ kubectl get nodes worker1 | ||
| + | </ | ||
| + | ^NAME ^STATUS ^ROLES ^AGE ^VERSION | ||
| + | |worker1|Ready|< | ||
| + | |||
| + | Verfahren Sie für alle weiteren Worker Nodes in Ihrer Data Plane auf dieselbe Weise. | ||
it-wiki/kubernetes/cluster_upgrade.1668583736.txt.gz · Zuletzt geändert: von marko