当前位置:网站首页>Kubernetes 怎么优雅升级
Kubernetes 怎么优雅升级
2022-08-06 11:20:00 【InfoQ】
前提条件
- 确保备份所有重要组件,例如存储在数据库中的应用状态。Kubernetes 升级不涉及正常的工作负载,只涉及与 Kubernetes 相关的组件,但备份始终是最佳实践。
- 必须禁用Swap交换
步骤
master节点
- 清空主节点
daemon set-managed pods--ignore-daemonsets#kubectl drain master --ignore-daemonsets
node/master already cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/kube-proxy-lfplf, kube-system/weave-net-fv7sn
evicting pod kube-system/coredns-64897985d-pl2v9
evicting pod kube-system/coredns-64897985d-65g5p
pod/coredns-64897985d-65g5p evicted
pod/coredns-64897985d-pl2v9 evicted
node/master drained
#kubectl get nodes
NAME STATUS ROLES VERSION
master Ready, SchedulingDisabled control-plane,master v1.22.2
worker Ready <none> v1.22.2
- 更新系统中的包管理器,根据您的操作系统,它可能会有所不同。
#apt-get update
- 在包管理器中搜索可用的 kubeadm 包,并使用 grep 过滤结果以获得您需要的版本。在我们的例子中是 1.23 版本。
#apt-cache show kubeadm | grep 1.23Version: 1.23.1–00
Filename: pool/kubeadm_1.23.1–00_amd64_6bc970cf9bf5349ba18526f77c6ac16caf2a52b6a7b0e40753541ebef52ad99f.deb
Version: 1.23.0–00
Filename: pool/kubeadm_1.23.0–00_amd64_36016a07eb5c2bfae656cfee1b3848930757d201b474fea1cce1ecd507b94f0b.deb
- 保留 kubectl 和 kubelet包,防止它们被自动安装、升级或删除。这是一个预防措施。
#apt-mark hold kubectl kubelet
- 取消保留 kubeadm 包,升级后再次 hold。
#apt-mark unhold kubeadm
#apt-get install kubeadm=1.23.1–00
#apt-mark hold kubeadm
- 检查 kubeadm版本以确保它已升级。
#kubeadm version

- 查看kubeadm升级计划,看看还有哪些组件需要升级。
#kubeadm upgrade plan

- 应用计划,你应该可以看到升级成功的消息
#kubeadm upgrade apply v1.23.1

- 取消保留 kubectl 和 kubelet包,升级它们然后再次持有它们。
#apt-mark unhold kubelet kubectl
#apt-get install kubelet=1.23.1-00 kubectl=1.23.1-00
#apt-mark hold kubelet kubectl
- 重新启动 kubelet 并检查是否正常运行。
#systemctl restart kubelet
#systemctl status kubelet
- 运行 kubeadm upgrade plan check以确保一切都已升级。
#kubeadm upgrade plan

- 检查节点状态和主节点的新版本。
#kubectl get nodes
NAME STATUS ROLES VERSION
master Ready,SchedulingDisabled control-plane,master v1.23.1
worker Ready <none> v1.22.2
- 解封主节点,使其再次可调度
#kubectl uncordon master
#kubectl get nodes
NAME STATUS ROLES VERSION
master Ready control-plane,master v1.23.1
worker Ready <none> v1.22.2
worker 节点
- 清空主节点
#kubectl drain worker --ignore-daemonsets --force
node/cks-worker drained
- 更新包管理器。取消保留,安装 kubeadm。
#apt-get update
#apt-mark unhold kubeadm
#apt-get install kubeadm=1.23.1-00
#apt-mark hold kubeadm
- 取消保留,安装,然后保留 kubectl 和 kubeadm。
#apt-mark unhold kubelet kubectl
#apt-get install kubelet=1.23.1-00 kubectl=1.23.1-00
#apt-mark hold kubelet kubectl
- 重启kubelet进程并检查其状态
#systemctl restart kubelet
#systemctl status kubelet
- 检查节点状态
#kubectl get nodes
NAME STATUS ROLES VERSION
master Ready control-plane,master v1.23.1
worker Ready,SchedulingDisabled <none> v1.23.1
- 解封worker节点,使其再次可调度
#kubectl uncordon worker
#kubectl get nodes
NAME STATUS ROLES VERSION
master Ready control-plane,master v1.23.1
worker Ready <none> v1.23.1
边栏推荐
猜你喜欢

Microsoft's new service allows businesses to expand access to their threat intelligence repository

从小白到大神:MySQL数据库底层原理深度剖析

腾讯35k出来的,他让我见识到什么叫“精通MySQL调优”

端侧GPU基于opencl实现reduce算子

《STM32MP1 M4裸机CubeIDE开发指南》第二十三章 SysTick高精度延时实验

Offer harvester!The giant's latest interview guide, quick to see see!

Kubernetes 架构知识

HCIP第十四天笔记

接口的安全设计要素有哪些?

Kubernetes 怎么调度管理CPU
随机推荐
NC1 大数加法
使用 husky+commitlint 检查提交描述是否符合规范要求,及提交代码进行格式化
Kubernetes 怎么调度管理CPU
在常州“超级虚拟工厂”,中国智造正在“原力觉醒”
解密一颗芯片设计的全生命周期算力需求
自动化测试是什么?应用在哪儿?
写给普通用户的Aptos生态交互指南
Mini Program Commodity List: Commodity Collection Implementation
Hexagon_V65_Programmers_Reference_Manual(18)
小程序商品列表:商品收藏实现
IDEA POM刷新仍然爆红
题目分析1
Offer harvester!The giant's latest interview guide, quick to see see!
蓝帽杯2022年半决赛 writeup(附取证题目+解压密码+附件)
NC1 Addition of Large Numbers
Kubernetes daily command
d重载操作符
NC3 链表中环的入口结点
后缀自动机(其二)
Fluid -1- 主题安装