首页主机资讯如何卸载CentOS上的K8S

如何卸载CentOS上的K8S

时间2025-10-03 19:23:03发布访客分类主机资讯浏览1100
导读:如何在CentOS上彻底卸载Kubernetes(K8s) 1. 停止Kubernetes相关服务 首先,停止所有正在运行的Kubernetes组件服务,避免卸载过程中出现文件占用或进程冲突: sudo systemctl stop kub...

如何在CentOS上彻底卸载Kubernetes(K8s)

1. 停止Kubernetes相关服务

首先,停止所有正在运行的Kubernetes组件服务,避免卸载过程中出现文件占用或进程冲突:

sudo systemctl stop kubelet
sudo systemctl stop kube-apiserver
sudo systemctl stop kube-controller-manager
sudo systemctl stop kube-scheduler
sudo systemctl stop kube-proxy

说明kubelet是Kubernetes节点代理,负责与Master节点通信;其他服务为控制平面组件,需全部停止。

2. 重置Kubernetes集群状态(可选但推荐)

使用kubeadm reset命令清理Kubernetes集群的配置和数据(如etcd数据库、证书、Pod数据等),恢复节点到未加入集群的状态:

sudo kubeadm reset --force

说明--force参数用于强制执行重置(若集群处于异常状态),避免交互式确认。

3. 卸载Kubernetes软件包

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

sudo yum remove -y kubeadm kubelet kubectl kubernetes-cni kube*

说明kubeadm用于集群部署,kubelet为节点代理,kubectl为命令行工具,kubernetes-cni为容器网络接口驱动;kube*会匹配并卸载所有以"kube"开头的软件包。

4. 删除Kubernetes配置文件与数据目录

彻底清除Kubernetes的配置文件、证书及数据存储目录,防止残留信息影响后续重新部署:

sudo rm -rf /etc/kubernetes/          # 控制平面配置(如kube-apiserver.yaml、kube-controller-manager.yaml)
sudo rm -rf /var/lib/etcd/            # etcd数据库(存储集群状态,默认路径)
sudo rm -rf /var/lib/kubelet/         # kubelet数据(如Pod卷、镜像缓存)
sudo rm -rf $HOME/.kube/              # 用户级kubeconfig文件(默认路径)

说明/etc/kubernetes/包含集群配置,/var/lib/etcd/存储集群状态,/var/lib/kubelet/存储节点数据,~/.kube/存储用户访问集群的凭证。

5. 清理CNI网络配置与插件

Kubernetes依赖CNI(容器网络接口)实现Pod间网络通信,需删除CNI配置文件及插件目录:

sudo rm -rf /etc/cni/net.d/           # CNI网络配置文件(如flannel、calico的配置)
sudo rm -rf /opt/cni/bin/             # CNI插件二进制文件(如flannel、calico的可执行文件)

说明:若使用其他CNI插件(如Calico、Cilium),需确保删除对应插件的数据目录(如/var/lib/calico/)。

6. (可选)卸载容器运行时(如Docker/Containerd)

若不再需要容器运行时(Kubernetes依赖容器运行时启动Pod),可进一步卸载:

  • 卸载Docker
    sudo systemctl stop docker
    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数据目录(存储镜像、容器、卷)
    
  • 卸载Containerd
    sudo systemctl stop containerd
    sudo yum remove -y containerd
    sudo rm -rf /var/lib/containerd     # Containerd数据目录
    

说明:Docker是CentOS上常用的容器运行时,若使用Containerd(Kubernetes原生运行时),需替换对应命令。

7. 清理iptables规则(可选但推荐)

Kubernetes会修改iptables规则以实现网络转发,卸载后需清理残留规则,避免影响系统网络:

sudo iptables -F &
    &
     sudo iptables -X &
    &
     sudo iptables -t nat -F &
    &
     sudo iptables -t nat -X &
    &
     sudo iptables -t mangle -F &
    &
     sudo iptables -t mangle -X &
    &
     sudo iptables -P FORWARD ACCEPT

说明-F清空规则,-X删除自定义链,-P FORWARD ACCEPT设置FORWARD链默认策略为ACCEPT(避免网络中断)。

8. 重启系统(可选但推荐)

重启系统以应用所有更改,确保系统恢复到干净状态:

sudo reboot

注意事项

  • 卸载前请备份重要数据(如etcd中的集群状态、容器镜像);
  • 若集群由kubeadm部署,kubeadm reset会自动清理大部分集群数据;
  • 若使用其他CNI插件(如Calico),需参考插件文档清理对应数据;
  • 卸载后建议检查系统日志(journalctl -xe)确认无残留进程。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何卸载CentOS上的K8S
本文地址: https://pptw.com/jishu/719007.html
怎样进行centos k8s部署优化 CentOS如何快速安装K8S

游客 回复需填写必要信息