RockLinux+kubeadm+k8s-1.22.16 升级到1.22.17
升级第一个控制面
所有master主机安装kubeadm 1.22.17
yum install -y kubeadm-1.22.17-0 --disableexcludes=kubernetes验证 kubeadm 版本
kubeadm version检查kubeadm-config 酌情修改
kubectl edit -n kube-system cm kubeadm-config内容如下
data:
ClusterConfiguration: |
apiServer:
extraArgs:
authorization-mode: Node,RBAC
enable-admission-plugins: NodeRestriction,PodNodeSelector,PodTolerationRestriction
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: api-server.solarfs.k8s:6443
controllerManager:
extraArgs:
bind-address: 0.0.0.0
dns:
imageRepository: docker.io/coredns
imageTag: 1.8.0
etcd:
local:
dataDir: /var/lib/etcd
extraArgs:
listen-client-urls: https://0.0.0.0:2379
listen-metrics-urls: http://0.0.0.0:2381
listen-peer-urls: https://0.0.0.0:2380
imageRepository: registry.netwarps.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.22.16
networking:
dnsDomain: cluster.local
podSubnet: 10.128.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler:
extraArgs:
bind-address: 0.0.0.0验证升级计划:
执行升级到 v1.22.17
正常情况下显示如下
手动升级你的 CNI 驱动插件
你的容器网络接口(CNI)驱动应该提供了程序自身的升级说明。 参阅插件页面查找你的 CNI 驱动, 并查看是否需要其他升级步骤。
flannel v0.20.1 升级到 v0.22.3
下载flannel.yml
酌情修改配置,Network 的范围必须大于kubeadm-config 中 podSubnet 和 serviceSubnet 配置配置
创建flannel v0.22.3
对比服务配置
升级前的配置备份在 /etc/kubernetes/tmp/kubeadm-backup-manifests-2023-12-04-15-01-38,有可能手动修改过的服务配置,酌情使用kubeadm重新修改相关配置,参考:重新配置 kubeadm 集群
对于其它控制面节点
与第一个控制面节点相同,但是使用:
而不是:
此外,不需要执行 kubeadm upgrade plan 和更新 CNI 驱动插件的操作。
腾空节点
通过将节点标记为不可调度并腾空节点为节点作升级准备:
升级 kubelet 和 kubectl
升级 kubelet 和 kubectl:
重启 kubelet
解除节点的保护
通过将节点标记为可调度,让其重新上线:
升级工作节点
工作节点上的升级过程应该一次执行一个节点,或者一次执行几个节点, 以不影响运行工作负载所需的最小容量。
升级 kubeadm
执行 "kubeadm upgrade"
对于工作节点,下面的命令会升级本地的 kubelet 配置:
腾空节点
官方文档写需要腾空节点,实际测试不腾空节点集群也可以正常工作(待观察吧)
将节点标记为不可调度并驱逐所有负载,准备节点的维护:
升级 kubelet 和 kubectl
升级 kubelet 和 kubectl:
重启 kubelet
取消对节点的保护
通过将节点标记为可调度,让节点重新上线:
验证集群的状态
在所有节点上升级 kubelet 后,通过从 kubectl 可以访问集群的任何位置运行以下命令, 验证所有节点是否再次可用:
STATUS 应显示所有节点为 Ready 状态,并且版本号已经被更新。
参考:
RockLinux+kubeadm+k8s-1.22.2升级到1.22.16.md
https://v1-23.docs.kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/
https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/control-plane-flags/
https://kubernetes.io/zh-cn/docs/reference/command-line-tools-reference/kube-controller-manager/
Last updated
Was this helpful?