当前位置: 首页 > news >正文

【K8s】升级节点

  • 集群应使用静态的控制平面和 etcd Pod 或者外部 etcd。
  • 务必备份所有重要组件,例如存储在数据库中应用层面的状态。 kubeadm upgrade 不会影响你的工作负载,只会涉及 Kubernetes 内部的组件,但备份终究是好的。
  • 必须禁用交换分区。

注意:以下命令以root身份或使用sudo

升级控制平面节点

控制平面节点上的升级过程应该每次处理一个节点。 首先选择一个要先行升级的控制平面节点。该节点上必须拥有 /etc/kubernetes/admin.conf 文件。

你必须采用“滚动的”方式,一次只升级一个。这样能确保在升级过程中,始终有其他的 Master 节点在线并正常工作,从而保持集群控制平面的可用性。如果同时升级所有 Master,控制平面会完全不可用。

这个文件是 ​kubeadm初始化集群或加入节点时创建的集群管理配置文件​​,其中包含了访问集群 API Server 所需的管理员证书和密钥。

执行kubeadm upgrade

对于第一个控制平面节点:

1、升级kubeadm

apt-mark unhold kubeadmapt-get updateapt-get install -y kubeadm='版本号'apt-mark hold kubeadm

2、验证

kubeadm version

3、验证执行计划

kubeadm upgrade plan

此命令检查你的集群是否可被升级,并取回你要升级的目标版本。 命令也会显示一个包含组件配置版本状态的表格。

kubeadm upgrade 也会自动对 kubeadm 在节点上所管理的证书执行续约操作。 如果需要略过证书续约操作,可以使用标志 --certificate-renewal=false

4、执行升级

kubeadm upgrade apply v1.34.x

该命令结束,你会看到

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

4、手动升级CNI驱动插件

Kubernetes 的核心升级命令 kubeadm upgrade只负责升级 Kubernetes 本身的组件(如 kube-apiserver, kube-controller-manager, kubelet 等),而不会自动升级你的网络插件(CNI 驱动)。你需要根据你使用的特定网络插件(如 Calico、Cilium、Flannel 等)的官方文档,来手动执行其升级操作。​

对于其他控制节点:

与第一个控制平面节点相同,但是不使用kubeadm upgrade apply 而是使用

kubeadm upgrade node

此外,也不需要kubeadm upgrade plan 和更新CNI插件

腾空节点

将节点编辑为不可调度并驱逐所有负载

kubectl drain node名称 --ignore-daemonsets

升级kubelet和kubectl

1、升级

apt-mark unhold kubelet kubectl apt-mark updateapt-get install -y kubelet=‘版本号’ kubectl='版本号'apt-mark hold kubelet kubectl 

2、重启服务

systemctl restart daemon-reloadsystemctl restart kubelet

解除节点的保护

kubectl uncordon node名称

升级工作节点

工作节点上的升级过程应该一次执行一个节点,或者一次执行几个节点, 以不影响运行工作负载所需的最小容量。

注意:root身份或使用sudo

升级kubeadm

apt-mark unhold kubeadmapt-get updateapt-get install -y kubeadm='版本号'

执行kubeadm upgrade

对于工作节点,下面的命令会升级本地的 kubelet 配置:

kubectl upgrade node

腾空节点

# 在控制平面节点上执行此命令
# 将 <node-to-drain> 替换为你正腾空的节点的名称
kubectl drain <node-to-drain> --ignore-daemonsets

升级kubectl和kubelet

apt-mark unhold kubectl kubeletapt-get updateapt-get install -y kubectl='版本号' kubelet='版本号'systemctl daemon-reloadsystemctl restart kubelet

取消对节点的保护

kubectl uncordon 节点名称

升级问题

1、可以只升级控制平面节点,而不升级工作节点吗?

可以,官方支持​​控制平面版本​​ 比 ​​工作节点版本​​ ​​高两个 minor 版本​​。

2、可以只升级一个控制平面节点,而不升级其他控制平面节点吗?

在滚动升级的​​过程中​​,集群必然会处于一种​​混合版本状态​​。例如,两个节点是 v1.27,一个节点是 v1.28。这是设计上允许的。但这是临时的、必须完成的状态。绝对不能作为长期运行的状态。​

http://www.dtcms.com/a/428191.html

相关文章:

  • Spring Boot自定义全局异常处理:从痛点到优雅实现
  • 网站正在建设中的素材动图网站设计制作程序
  • 企业网站的搭建流程河南论坛网站建设
  • wap网站建设策划方案做艺术字的网站
  • 电脑实用工具,资源下载
  • 曲阳有没有做网站里2345网站登录
  • PostgreSQL 向量操作符的计算和使用方式
  • 动态代理在提升网络安全中的作用及应用
  • 宁夏微信服务网站百度网盘资源搜索
  • 手机做网站用什么软件微信下载官方正版
  • Redis缓存异常
  • 建设网站iss局机关门户网站建设情况汇报
  • 做网站需要哪些东西163免费注册入口
  • 【Rust GUI开发入门】编写一个本地音乐播放器(9. 制作设置面板)
  • 概率统计中的数学语言与术语2
  • 美国2025年网络演习全景与趋势洞察
  • 公司做网站有什么用编程和做网站那个号
  • 做公司网站都需要什么免费广告设计网站
  • IO-link 协议高频工业 RFID 读写器
  • NeurIPS 2025 | 北大等提出C²Prompt:解耦类内与类间知识,攻克FCL遗忘难题!
  • 网站推广有哪些举措全屋定制品牌推荐
  • 1元建站wordpress短代码返回html
  • 极简学习工具产品蓝图、路线图、甘特图、交付清单
  • 为网站设计手机版深圳工业设计公司哪家好
  • 定制网站建设济南开发app需要哪些审批
  • 古老的游戏(游戏的娱乐属性)
  • 先进网站建设流程洛宁网站建设
  • 网站开发示例网页广告如何关闭
  • 免费的行情网站app软件大全母婴网站设计分析
  • 四川网站网页设计网站维护 北京