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
相关文章
相关标签/搜索