Kubernetes 升級過程記錄:從 1.17.0 升級至最新版 1.20.2

本文記錄的是將 kubernetes 集羣從 1.17.0 升級至最新版 1.20.2 的實際操做步驟,因爲 1.17.0 沒法直接升級到 1.20.2,須要進行2次過濾升級,1.17.0 -> 1.18.0 -> 1.19.0 -> 1.20.2。node

先在 control plane node 上進行升級操做,經過下面的命令查看最新版 kubeadm 的版本號app

apt update
apt-cache madison kubeadm

最新版是 1.20.2-00,用下面的命令安裝最新版 kubeadmthis

apt-get update && \
apt-get install -y --allow-change-held-packages kubeadm=1.20.2-00

而後查看升級計劃rest

kubeadm upgrade plan

提示沒法直接升級1.20.2code

[upgrade/config] FATAL: this version of kubeadm only supports deploying clusters with the control plane version >= 1.19.0. Current version: v1.17.0

因而嘗試先升級到 1.19.0get

apt-get update && \
apt-get install -y --allow-change-held-packages --allow-downgrades kubeadm=1.19.0-00

查看升級計劃1.19.0kubernetes

[upgrade/config] FATAL: this version of kubeadm only supports deploying clusters with the control plane version >= 1.18.0. Current version: v1.17.0

只能先升級到1.18.0it

apt-get update && \
apt-get install -y --allow-change-held-packages --allow-downgrades kubeadm=1.18.0-00

查看升級計劃io

kubeadm upgrade plan

啓動升級操做ast

kubeadm upgrade apply v1.18.0

集羣成功升級至 1.18.0

[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.18.0". Enjoy!
[upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so.

分別在 control plane node 與 worker node 上 將 kubelet 和 kubectl 升級至 1.18.0(若是是生產環境,在升級以前先 uncordon 要升級的節點)

apt-get update && \
apt-get install -y --allow-change-held-packages kubelet=1.18.0-00 kubectl=1.18.0-00
systemctl daemon-reload && systemctl restart kubelet

繼續,向 1.19.0 升級!

升級 kubeadm 至 1.19.0

apt-get install -y --allow-change-held-packages --allow-downgrades kubeadm=1.19.0-00

升級集羣至 1.19.0

kubeadm upgrade plan
kubeadm upgrade apply v1.19.0

升級 kubelet 和 kubectl 至 1.19.0

apt-get install -y --allow-change-held-packages kubelet=1.19.0-00 kubectl=1.19.0-00
systemctl daemon-reload && systemctl restart kubelet

衝刺,向最新版升級!

升級 kubeadm 至 1.20.2

apt-get install -y --allow-change-held-packages kubeadm=1.20.2-00

升級集羣至 1.20.2

kubeadm upgrade plan
kubeadm upgrade apply v1.20.2

升級 kubelet 和 kubectl 至 1.20.2

apt-get install -y --allow-change-held-packages kubelet=1.20.2-00 kubectl=1.20.2-00
systemctl daemon-reload && systemctl restart kubelet

勝利,升級成功!

NAME          STATUS   ROLES                  AGE     VERSION
k8s-master0   Ready    control-plane,master   371d    v1.20.2
kube-node1    Ready    <none>                 2d15h   v1.20.2
kube-node2    Ready    <none>                 38h     v1.20.2
kube-node3    Ready    <none>                 17h     v1.20.2
相關文章
相關標籤/搜索