K8S升级版本

系统:Rocky Linux 8.6 x64

k8s1.26.1 -> 1.26.3

升级控制节点

查找最新版本

# 查找最新版本
yum list --showduplicates kubeadm --disableexcludes=kubernetes

升级过程

yum install kubeadm-1.26.3-0
kubeadm version

# 验证升级计划,只有第一个主控节点升级使用“plan”,其它主控节点跟工作节点一样替换“plan”为“node”
kubeadm upgrade plan

# 选择要升级的目标版本
kubeadm upgrade apply v1.26.3

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

# 如果有多个主控节点,就依次清空主控节点进行升级
kubectl drain test-03

yum install -y kubectl-1.26.3-0 kubelet-1.26.3-0

systemctl daemon-reload 
systemctl restart kubelet

升级工作节点

升级证书

检查证书是否过期

你可以使用 check-expiration 子命令来检查证书何时过期

自动更新证书

kubeadm 会在控制面升级的时候更新所有证书。

手动更新证书

你能随时通过kubeadm certs renew命令手动更新你的证书。

此命令用 CA(或者 front-proxy-CA )证书和存储在/etc/kubernetes/pki中的密钥执行更新。

执行完此命令之后你需要重启控制面 Pods。因为动态证书重载目前还不被所有组件和证书支持,所有这项操作是必须的。 静态 Pods 是被本地 kubelet 而不是 API Server 管理, 所以 kubectl 不能用来删除或重启他们。 要重启静态 Pod 你可以临时将清单文件从 /etc/kubernetes/manifests/ 移除并等待 20 秒 (参考 KubeletConfiguration 结构 中的fileCheckFrequency 值)。 如果 Pod 不在清单目录里,kubelet 将会终止它。 在另一个 fileCheckFrequency 周期之后你可以将文件移回去,为了组件可以完成 kubelet 将重新创建 Pod 和证书更新。


1.28.x升级到1.29.x

1.28.3以后的版本k8s官方更新了包仓库地址, 需要重新配置

yum命令中的--disableexcludes的作用

最后更新于