如何卸载CentOS上的K8S
如何在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