centos

centos如何卸载k8s

小樊
50
2025-10-05 06:23:32
栏目: 智能运维

一、停止Kubernetes相关服务

在卸载前,需先停止所有Kubernetes相关服务,避免进程残留。执行以下命令:

sudo systemctl stop kubelet
sudo systemctl disable kubelet  # 禁用开机自启(可选但推荐)

若使用Docker作为容器运行时,还需停止Docker服务:

sudo systemctl stop docker

二、卸载Kubernetes软件包

使用CentOS的包管理器yum(或CentOS 8+的dnf)卸载Kubernetes核心组件及依赖:

sudo yum remove -y kubeadm kubelet kubectl kubernetes-cni kube*  # CentOS 7
# 或(CentOS 8+)
sudo dnf remove -y kubeadm kubelet kubectl kubernetes-cni kube*

kube*通配符可确保卸载所有以"kube"开头的软件包,避免遗漏。

三、删除Kubernetes配置文件与数据目录

Kubernetes的配置文件和数据存储在特定目录中,需彻底删除以清除集群状态:

sudo rm -rf /etc/kubernetes/          # 集群配置目录(含kube-apiserver、kube-controller-manager等配置)
sudo rm -rf /var/lib/kubelet/         # kubelet工作目录(含Pod数据、卷挂载信息)
sudo rm -rf /var/lib/etcd/            # etcd数据目录(etcd是Kubernetes的键值存储,存储集群状态)
sudo rm -rf ~/.kube/                  # 当前用户的kubeconfig配置文件(含集群访问凭证)

四、清理CNI网络配置与残留网络接口

CNI(容器网络接口)负责Pod网络通信,卸载时需清理其配置及残留网络接口:

sudo rm -rf /etc/cni/net.d/           # CNI配置文件目录(含Calico、Flannel等网络插件配置)
sudo rm -rf /opt/cni/bin/             # CNI插件二进制文件目录(如bridge、host-local等)
# 删除残留的CNI网络接口(如cni0、veth等)
sudo ip link | grep cni | awk '{print $2}' | sed 's/://g' | xargs -r -n1 ip link delete

五、(可选)卸载Docker/Containerd容器运行时

若不再需要Docker或Containerd,可进一步卸载以释放资源:

卸载Docker(CentOS 7):

sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo rm -rf /var/lib/docker  # Docker工作目录(含镜像、容器、卷数据)

卸载Docker(CentOS 8+):

sudo dnf remove -y docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker

卸载Containerd:

sudo systemctl stop containerd
sudo systemctl disable containerd
sudo rm -rf /var/lib/containerd /etc/containerd
sudo dnf remove -y containerd  # 或使用yum

六、重启系统(可选但推荐)

重启系统可确保所有更改生效,清除临时文件及内核模块残留:

sudo reboot

注意事项

  1. 数据备份:卸载前请备份重要数据(如etcd中的集群状态、容器镜像等),卸载后数据无法恢复。
  2. 脚本卸载:可使用一键脚本简化操作(如搜索结果中的uninstall_k8s.sh),但需仔细检查脚本内容,避免误删系统文件。
  3. 重新安装:若需重新部署Kubernetes,需重新安装kubeadm、kubelet、kubectl,并初始化集群(kubeadm init)。

0
看了该问题的人还看了