在 CentOS 8 上彻底卸载 Kubernetes(k8s)

该脚本用户删除 kubeadm、kubectl、kubelet,清理相关配置文件和目录,以及关闭和禁用 kubelet 服务。


#!/bin/bash

set -e

echo "开始卸载 Kubernetes..."

# 停止并禁用 kubelet 服务
echo "停止 kubelet 服务..."
systemctl stop kubelet || true
systemctl disable kubelet || true

# 卸载 Kubernetes 相关软件包
echo "卸载 kubeadm、kubectl、kubelet..."
dnf remove -y kubeadm kubectl kubelet kubernetes-cni kube*

# 删除 Kubernetes 相关目录和配置
echo "清理 Kubernetes 配置和数据目录..."
rm -rf /etc/kubernetes
rm -rf /var/lib/etcd
rm -rf /var/lib/kubelet
rm -rf /var/lib/kubernetes
rm -rf ~/.kube

# 清理 CNI 网络配置和插件目录
rm -rf /etc/cni/net.d
rm -rf /opt/cni/bin

# 删除 kubelet 系统文件(可选)
rm -rf /var/lib/systemd/system/kubelet.service.d
rm -f /etc/systemd/system/kubelet.service

# 重载 systemd 配置
echo "重载 systemd..."
systemctl daemon-reload

# 删除所有残留的容器网络接口 (CNI)
echo "删除残留网络接口..."
ip link | grep cni | awk '{print $2}' | sed 's/://g' | xargs -r -n1 ip link delete

echo "Kubernetes 已彻底卸载完成!"

使用方法

  1. 保存为 uninstall_k8s.sh

  2. 赋予执行权限:

chmod +x uninstall_k8s.sh
  1. 运行脚本(需要 root 权限):

sudo ./uninstall_k8s.sh

### 彻底卸载 Kubernetes 并安全删除所有 etcd 数据和配置文件 #### 卸载 Kubernetes 组件 要彻底卸载 Kubernetes 及其组件,需执行一系列命令来确保没有任何残留文件或进程存在。 对于 Kubernetes 的主要组件及其依赖项的卸载操作如下: 在 Linux CentOS 系统上可以使用包管理工具 `yum` 或者 `apt-get` 来完成软件包级别的卸载工作。这里假设环境基于 Debian/Ubuntu 类型发行版,则采用 `apt-get` 命令来进行处理[^3]。 ```bash sudo apt-get purge kubeadm kubectl kubelet kubernetes-y ``` 这会移除核心控制平面和服务端口所需的二进制文件以及 CNI 插件。 #### 清理持久化数据与配置文件 接着清除 `/etc/kubernetes`, `/var/lib/etcd`, 和其他可能存在的关联路径下的资源,这些位置通常保存着集群初始化后的静态配置信息和其他运行时产生的元数据。 ```bash sudo rm -rf /etc/kubernetes/ sudo rm -rf /var/lib/etcd/ sudo rm -rf /var/lib/kubelet/ sudo rm -rf $HOME/.kube/ ``` 上述指令不仅清除了默认安装路径中的设置,还涉及到了用户家目录下 `.kube` 文件夹内的认证凭证等私有资料。 #### 处理 Container Runtime (如Containerd) 考虑到现代版本(特别是 v1.24+)已经将 containerd 设定为默认容器引擎,默认情况下不会随同 K8S 主体一起被自动清理掉;因此有必要单独对其进行显式的停用及移除动作。 ```bash sudo systemctl stop containerd sudo apt-get purge --auto-remove containerd.io -y ``` 停止服务并从系统中完全抹去该守护程序实例连带其附属库文件[^2]。 #### 移除CNI网络插件定义 最后一步是要把之前由 Kubernetes 所建立起来的任何自定义网络策略描述符一并消除干净,防止后续新部署的应用尝试复用旧有的规则造成冲突。 ```bash sudo rm -rf /etc/cni/net.d/* ``` 通过以上步骤能够有效地实现对整个 Kubernetes 集群及相关设施的一键式重置效果,在此过程中务必谨慎行事以免误删重要业务资产之外的数据[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

longerxin2020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值