云原生學(xué)習(xí)路線(xiàn)導(dǎo)航頁(yè)(持續(xù)更新中)
本文是 Kubernetes 基礎(chǔ)學(xué)習(xí) 系列文章,主要講解 使用kubeadm,將kubernetes集群從1.17升級(jí)到1.20
1.kubernetes一般不要跨大版本升級(jí)
- 一般來(lái)說(shuō),跨越多個(gè)主要版本的升級(jí)需要逐個(gè)升級(jí)每個(gè)中間版本
- 因此,無(wú)法直接將kubernetes從1.17直接升級(jí)到1.20或更高版本,需要按照1.17–>1.18–>1.19–>1.20的順序一一進(jìn)行升級(jí)
- 本文暫時(shí)只適用于使用 kubeadm 安裝的 kubernetes 集群
2.kubeadm升級(jí)單節(jié)點(diǎn)集群的步驟
如果你的kubernetes集群只有一個(gè)節(jié)點(diǎn)同時(shí)作為master和node,沒(méi)有其他master和node,可以直接按照下面的步驟升級(jí),否則請(qǐng)看第3部分文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-855505.html
2.1.kubernetes集群從1.17–>1.18
# 查看kubeadm支持的所有版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes
# 這里每次升級(jí)到中轉(zhuǎn)版本,都升級(jí)到當(dāng)前版本的最新版,當(dāng)然你也可以自行選擇其他版本
# 如這里選擇1.18.20-0
yum install -y kubeadm-1.18.20-0 --disableexcludes=kubernetes
# 驗(yàn)證kubeadm是否升級(jí)成功
kubeadm version
# 將kubelet和kubectl也升級(jí)一下
yum downgrade kubelet-1.18.20 kubectl-1.18.20
# 查看升級(jí)計(jì)劃,如果沒(méi)有明顯的報(bào)錯(cuò),就可以繼續(xù)
kubeadm upgrade plan
# 執(zhí)行升級(jí)
kubeadm upgrade apply v1.18.20
# 注:如果上面升級(jí)報(bào)錯(cuò):
# 報(bào)錯(cuò) - There are kubelets in this cluster that are too old that have these versions,
# 則可以添加--force強(qiáng)制升級(jí)
# kubeadm upgrade apply v1.18.20 --force
# 出現(xiàn)這段,代表升級(jí)成功
# [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.18.20". Enjoy!
2.2.kubernetes集群從1.18–>1.19
# 查看kubeadm支持的所有版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes
# 這里每次升級(jí)到中轉(zhuǎn)版本,都升級(jí)到當(dāng)前版本的最新版,當(dāng)然你也可以自行選擇其他版本
# 如這里選擇1.19.16-0
yum install -y kubeadm-1.19.16-0 --disableexcludes=kubernetes
# 驗(yàn)證kubeadm是否升級(jí)成功
kubeadm version
# 將kubelet和kubectl也升級(jí)一下
yum downgrade kubelet-1.19.16 kubectl-1.19.16
# 查看升級(jí)計(jì)劃,如果沒(méi)有明顯的報(bào)錯(cuò),就可以繼續(xù)
kubeadm upgrade plan
# 執(zhí)行升級(jí)
kubeadm upgrade apply v1.19.16
# 注:如果上面升級(jí)報(bào)錯(cuò):
# 報(bào)錯(cuò) - There are kubelets in this cluster that are too old that have these versions,
# 則可以添加--force強(qiáng)制升級(jí)
# kubeadm upgrade apply v1.19.16 --force
# 出現(xiàn)這段,代表升級(jí)成功
# [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.19.16". Enjoy!
2.3.kubernetes集群從1.19–>1.20
# 查看kubeadm支持的所有版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes
# 這里每次升級(jí)到中轉(zhuǎn)版本,都升級(jí)到當(dāng)前版本的最新版,當(dāng)然你也可以自行選擇其他版本
# 如這里選擇1.20.15-0
yum install -y kubeadm-1.20.15-0 --disableexcludes=kubernetes
# 驗(yàn)證kubeadm是否升級(jí)成功
kubeadm version
# 將kubelet和kubectl也升級(jí)一下
yum downgrade kubelet-1.20.15 kubectl-1.20.15
# 查看升級(jí)計(jì)劃,如果沒(méi)有明顯的報(bào)錯(cuò),就可以繼續(xù)
kubeadm upgrade plan
# 執(zhí)行升級(jí)
kubeadm upgrade apply v1.20.15
# 注:如果上面升級(jí)報(bào)錯(cuò):
# 報(bào)錯(cuò) - There are kubelets in this cluster that are too old that have these versions,
# 則可以添加--force強(qiáng)制升級(jí)
# kubeadm upgrade apply v1.20.15 --force
# 出現(xiàn)這段,代表升級(jí)成功
# [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.20.15". Enjoy!
3.kubeadm升級(jí)多節(jié)點(diǎn)集群的步驟
下面演示 1.17–>1.18 的過(guò)程,升級(jí)后,用戶(hù)可自行再升級(jí)到1.19和1.20,只需修改版本號(hào)即可文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-855505.html
3.1.kubeadm升級(jí)一個(gè)master
- 如果你有多個(gè)master,先選擇一個(gè)master,按照第2部分的步驟,將1.17升級(jí)到1.18
# 查看kubeadm支持的所有版本 yum list --showduplicates kubeadm --disableexcludes=kubernetes # 這里每次升級(jí)到中轉(zhuǎn)版本,都升級(jí)到當(dāng)前版本的最新版,當(dāng)然你也可以自行選擇其他版本 # 如這里選擇1.18.20-0 yum install -y kubeadm-1.18.20-0 --disableexcludes=kubernetes # 驗(yàn)證kubeadm是否升級(jí)成功 kubeadm version # 將kubelet和kubectl也升級(jí)一下 yum downgrade kubelet-1.18.20 kubectl-1.18.20 # 查看升級(jí)計(jì)劃,如果沒(méi)有明顯的報(bào)錯(cuò),就可以繼續(xù) kubeadm upgrade plan # 執(zhí)行升級(jí) kubeadm upgrade apply v1.18.20 # 注:如果上面升級(jí)報(bào)錯(cuò): # 報(bào)錯(cuò) - There are kubelets in this cluster that are too old that have these versions, # 則可以添加--force強(qiáng)制升級(jí) # kubeadm upgrade apply v1.18.20 --force # 出現(xiàn)這段,代表升級(jí)成功 # [upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.18.20". Enjoy!
3.2.kubeadm升級(jí)其他master和node
# 升級(jí)kubeadm
yum install -y kubeadm-1.18.20-0 --disableexcludes=kubernetes
# 查看kubeadm升級(jí)是否成功
kubeadm version
# 查看升級(jí)計(jì)劃
kubeadm upgrade plan
# 注意,這里不是apply,而是node
kubeadm upgrade node
# 驅(qū)逐工作負(fù)載
# 將 <node-to-drain> 替換為你要騰空的控制面節(jié)點(diǎn)名稱(chēng)
kubectl drain <node-to-drain> --ignore-daemonsets
# 升級(jí)kubelet和kubectl
yum install -y kubelet-1.18.20-0 kubectl-1.18.20-0 --disableexcludes=kubernetes
# 重啟kubelet
sudo systemctl daemon-reload
sudo systemctl restart kubelet
# 解除節(jié)點(diǎn)保護(hù)
# 將 <node-to-uncordon> 替換為你的節(jié)點(diǎn)名稱(chēng)
kubectl uncordon <node-to-uncordon>
4.參考鏈接
- kubernetes官方升級(jí)文檔
- https://www.cnblogs.com/dudu/p/14274601.html
- https://cloudpods.csdn.net/65780f9ab8e5f01e1e449335.html
- https://www.jianshu.com/p/e8abd105caa9
到了這里,關(guān)于kubeadm 升級(jí) k8s集群 1.17到1.20的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!