debian

Debian环境下如何卸载Kubernetes

小樊
37
2025-10-25 13:23:12
栏目: 智能运维

1. 停止并禁用Kubernetes相关服务
首先停止所有正在运行的Kubernetes服务,防止其在系统重启后自动启动:

sudo systemctl stop kubelet
sudo systemctl disable kubelet
sudo systemctl stop kube-proxy
sudo systemctl disable kube-proxy
# 如果使用Docker作为容器运行时,还需停止Docker服务
sudo systemctl stop docker
sudo systemctl disable docker

2. 卸载Kubernetes核心组件
使用apt-get命令彻底移除Kubernetes及其相关组件(包括kubeadmkubectlkubelet和CNI插件):

sudo apt-get purge -y kubeadm kubectl kubelet kubernetes-cni kube*
# 清理无用的依赖包和缓存
sudo apt-get autoremove -y
sudo apt-get autoclean

3. 删除Kubernetes配置文件与数据目录
移除Kubernetes的所有配置文件、证书及数据存储目录,确保无残留配置:

sudo rm -rf /etc/kubernetes/          # Kubernetes主配置目录
sudo rm -rf /etc/cni/net.d/           # CNI网络配置目录
sudo rm -rf /var/lib/kubelet/         # Kubelet数据目录
sudo rm -rf /var/lib/kube-proxy/      # Kube-proxy数据目录
sudo rm -rf /var/lib/etcd/            # etcd数据目录(若有使用)
sudo rm -rf ~/.kube/                  # 用户kube配置目录(~/.kube/config等)

4. 清理容器运行时(若使用Docker)
如果使用Docker作为容器运行时,需清理Docker中的Kubernetes相关镜像、容器及配置:

# 清理所有未使用的Docker资源(镜像、容器、网络、卷)
sudo docker system prune -af --volumes
# 删除Kubernetes专用镜像(可根据实际镜像名称调整)
sudo docker rmi -f $(docker images | grep -E 'k8s.gcr.io|kubernetes' | awk '{print $3}')
# 删除Docker配置目录
sudo rm -rf /etc/docker/
sudo rm -rf /var/lib/docker/

5. 清理网络配置
删除Kubernetes创建的网络接口、CNI配置及iptables规则,避免网络残留:

# 删除Kubernetes创建的网络接口(如cni0、flannel.1等)
ip link | grep -E 'cni0|flannel' | awk '{print $2}' | sed 's/://g' | xargs -r -n1 ip link delete
# 清空iptables规则(包括nat、mangle表)
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -X
# 重置iptables默认策略(可选,根据需求调整)
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

6. 重启系统
重启系统以应用所有更改,确保残留进程和服务被彻底终止:

sudo reboot

7. 验证卸载结果
重启后,通过以下命令验证Kubernetes是否已完全卸载:

kubectl get nodes  # 应返回“command not found”或“No resources found”
kubeadm version  # 应返回“command not found”
kubelet --version # 应返回“command not found”

注意事项

0
看了该问题的人还看了