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升级工作节点
yum install kubeadm-1.26.3-0
kubeadm version
# 验证升级计划,这里跟第一主控节点不一样
kubeadm upgrade node
# 在主控节点上,每次清空“test-04 test-05 test-06”中的一个节点并设置为不可调度,升级完再清空下一个
kubectl drain test-04 | test-05 |test-06 --ignore-daemonsets --delete-emptydir-data
yum install kubectl-1.26.3-0 kubelet-1.26.3
systemctl daemon-reload
systemctl restart kubelet
# 升在主控节点上,级完之后恢复各节点调度
kubectl uncordon test-04 | test-05 | test-06升级证书
检查证书是否过期
你可以使用 check-expiration 子命令来检查证书何时过期
kubeadm certs 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 和证书更新。
警告:
如果你运行了一个 HA 集群,这个命令需要在所有控制面板节点上执行。1.28.x升级到1.29.x
1.28.3以后的版本k8s官方更新了包仓库地址, 需要重新配置
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
yum install kubeadm --disableexcludes=kubernetes最后更新于