升级Debian上的Kubernetes(K8S)集群涉及多个步骤,以下是详细的升级流程:
升级前的准备工作
-
备份集群配置和数据:
- 备份
/etc/kubernetes/
目录,其中包含Kubernetes集群的配置文件。 - 备份
/var/lib/etcd/
目录,其中存储了etcd数据库的数据。使用etcdctl
工具备份etcd数据:etcdctl snapshot save /data/etcd/etcd_bak.db \ --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt \ --key=/etc/kubernetes/pki/etcd/server.key
如果没有etcdctl
工具,可通过yum install -y etcd
安装。
- 备份
-
检查集群状态:
- 确保集群中所有节点的状态正常,所有Pod都在运行状态。
- 检查集群中是否有未完成的作业或任务,避免升级过程中出现意外。
升级控制平面节点(master节点)
-
升级
kubeadm
:- 下载新版本的
kubeadm
二进制文件,并替换旧版本文件。例如,下载1.29.10版本:wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubeadm chmod +x kubeadm sudo mv kubeadm /usr/local/bin/
- 验证
kubeadm
版本:kubeadm version
- 检查升级计划:
kubeadm upgrade plan
- 执行控制平面升级:
kubeadm upgrade apply v1.29.10
该命令会自动下载并安装新版本的控制平面组件,包括kube-apiserver
、kube-controller-manager
、kube-scheduler
等。 - 腾空master节点将master节点标记为不可调度,并驱逐所有负载:
kubectl drain k8s-master --ignore-daemonsets
- 下载新版本的
-
升级
kubelet
和kubectl
:- 下载新版本的
kubelet
和kubectl
二进制文件,并替换旧版本文件:wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubelet wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubectl chmod +x kubelet kubectl sudo mv kubelet /usr/local/bin/ sudo mv kubectl /usr/local/bin/
- 重启
kubelet
服务:sudo systemctl daemon-reload sudo systemctl restart kubelet
- 解除节点保护将master节点标记为可调度:
kubectl uncordon k8s-master
- 下载新版本的
升级工作节点
-
升级
kubeadm
:- 在工作节点上,下载并安装新版本的
kubeadm
二进制文件:wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubeadm chmod +x kubeadm sudo mv kubeadm /usr/local/bin/
- 腾空工作节点将工作节点标记为不可调度,并驱逐所有负载:
kubectl drain k8s-node1 --ignore-daemonsets
- 在工作节点上,下载并安装新版本的
-
升级
kubelet
和kubectl
:- 下载并安装新版本的
kubelet
和kubectl
二进制文件:wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubelet wget https://dl.k8s.io/release/v1.29.10/bin/linux/amd64/kubectl chmod +x kubelet kubectl sudo mv kubelet /usr/local/bin/ sudo mv kubectl /usr/local/bin/
- 重启
kubelet
服务:sudo systemctl daemon-reload sudo systemctl restart kubelet
- 解除节点保护将工作节点标记为可调度:
kubectl uncordon k8s-node1
- 下载并安装新版本的
注意事项
- 在进行系统升级前,请务必备份重要数据以避免数据丢失。
- 建议使用官方或可信的源进行更新,以确保获取到的是稳定且安全的版本。
- 更新过程中,密切关注终端输出的信息,以便及时发现并解决可能出现的问题。
- 更新完成后,可能需要重启相关服务或整个系统以使更新生效。
通过以上步骤,你可以安全地在Debian上升级Kubernetes集群。请根据你的具体需求和集群配置调整命令和步骤。