一、卸载手动安装的 containerd
🔧 1. 停止 containerd 服务
sudo systemctl stop containerd
🔧 2. 禁用开机自启
sudo systemctl disable containerd
🔧 3. 移除 systemd 服务文件
你之前创建的服务文件是:
/etc/systemd/system/containerd.service
删除它:
sudo rm -f /etc/systemd/system/containerd.service
📌 这是你手动创建的 systemd unit 文件,不是系统自带的,可以安全删除。
🔧 4. 删除 containerd 的二进制文件和目录
你当初解压到了
目录,使用了类似这样的命令:
/usr/local
tar Cxzvf /usr/local containerd-2.1.4-linux-amd64.tar.gz
这通常会将 containerd 解压到
以及一些相关文件(比如
/usr/local/bin/containerd
、
/usr/local/libexec/containerd
等)。
/usr/local/bin/containerd-shim
🔍 你可以查看
下是否有
/usr/local/bin/
可执行文件:
containerd
ls -l /usr/local/bin/containerd
如果存在,删除整个 containerd 相关目录(通常是解压出来的文件夹,但 tar 包一般直接解压到 bin 和辅助目录):
❗ 注意:containerd 官方 tar 包解压后一般直接把二进制放到
,以及一些库或辅助工具到
/usr/local/bin/或
/usr/local/libexec/下。
/usr/local/bin/
你可以通过以下方式找到 containerd 相关文件:
which containerd
典型输出:
/usr/local/bin/containerd
然后,你可以删除它:
sudo rm -f /usr/local/bin/containerd
🔒 如果你想更彻底地清理(推荐),可以删除整个解压出来的相关文件,但通常官方 tar 包不会创建单独的文件夹,而是直接把二进制放到
,所以:
/usr/local/bin/
🔧 5.删除相关组件
# 删除 containerd 主程序
sudo rm -f /usr/local/bin/containerd
# 可能还有一些辅助二进制,比如 containerd-shim, containerd-shim-runc-v2 等,如果你看到也可以删
sudo rm -f /usr/local/bin/containerd-shim
sudo rm -f /usr/local/bin/containerd-shim-runc-v2
sudo rm -f /usr/local/bin/ctr
# 如果你之前创建了 /etc/containerd/config.toml,可以选择备份或删除
sudo rm -f /etc/containerd/config.toml
📌 注意:
是容器运行时配置文件,如果你之后还要装 containerd,可以留着参考,但如果你确定不再使用,可以删掉。
/etc/containerd/config.toml
二、清理残留数据(可选但推荐)
containerd 运行时可能会在以下目录中存有数据(比如镜像、容器、元数据等),如果你不再使用,可以清理:
删除 containerd 的默认数据目录
默认情况下,containerd 的数据(包括镜像、容器等)存储在:
/var/lib/containerd
🔒 如果你确定以后不再使用这个 containerd,或者要全新安装,可以删除此目录:
sudo rm -rf /var/lib/containerd
⚠️ 注意:删除
会清除所有 containerd 管理的容器、镜像、卷、快照等数据,不可恢复!如果你只是卸载但未来可能重装,可以先保留。
/var/lib/containerd
三、清理 systemd 配置
sudo systemctl daemon-reload
确保 systemd 不再加载已删除的 service 文件。
如果之前有残留的 containerd 相关服务,可以检查:
systemctl list-unit-files | grep containerd
如果没有输出,说明干净;如果还有,可以手动删除对应 service 文件(比如在
或
/etc/systemd/system/
下)。
/lib/systemd/system/
四、验证是否卸载成功
查看 containerd 是否还在运行:
ps aux | grep containerd
如果没有看到
相关的进程,说明已经停止。
/usr/local/bin/containerd
再检查服务状态:
systemctl status containerd
应该报错类似:
Unit containerd.service could not be found.
说明服务已经不存在。
查看二进制:
which containerd
如果返回空,说明 containerd 二进制已删除。
五、总结:卸载手动安装的 containerd
步骤 | 操作 | 命令 |
---|---|---|
1 | 停止 containerd 服务 |
|
2 | 禁用开机启动 |
|
3 | 删除 systemd service 文件 |
|
4 | 删除 containerd 二进制文件 | (以及可能的 shim / ctr 等) |
5 | (可选)删除配置文件 |
|
6 | (可选,彻底清理)删除数据目录 |
|
7 | 重新加载 systemd |
|
8 | 验证是否卸载 | , ,
|
六、k8s集群初始化失败全清理指南
1️⃣ 【重置 kubeadm 状态】
运行以下命令,重置 kubeadm 创建的所有控制平面/节点资源、网络、证书等:
sudo kubeadm reset -f
✅ 说明:
会清理:
kubeadm reset集群相关的证书和密钥网络接口(如 CNI 相关的网桥、flannel/calico 设备等)
下的部分内容(但不会删除整个目录,因此我们后面手动删除)
/etc/kubernetes/
2️⃣ 【手动删除所有 k8s相关目录和配置文件】
执行以下命令,彻底删除所有 Kubernetes 相关的配置与数据目录:
sudo rm -rf
/etc/kubernetes/
/var/lib/kubelet/
~/.kube/config
✅ 说明:
:包含集群配置、证书、kubeconfig、Controller Manager/etcd/kube-apiserver 的静态 Pod 清单等
/etc/kubernetes/:kubelet 的本地数据,如容器运行时状态、卷挂载、设备插件等
/var/lib/kubelet/:当前用户(如 root)用于访问集群的认证和配置文件
~/.kube/config
3️⃣ 【停止并禁用 kubelet 服务】
确保 kubelet 服务已停止,并禁止开机自动启动:
sudo systemctl stop kubelet
sudo systemctl disable kubelet
✅ 说明:
:立即停止 kubelet 服务
stop:禁止开机时自动启动(避免残留服务干扰下次安装)
disable
4️⃣ 【卸载 Kubernetes 相关软件包】
如果你是通过
(如 Fedora / RHEL / CentOS / Rocky Linux)安装的 Kubernetes 组件,运行以下命令卸载它们:
dnf
sudo dnf remove -y kubelet kubeadm kubectl
✅ 说明:
移除
、
kubelet、
kubeadm这三个核心组件
kubectl表示自动确认,避免交互式提问
-y
⚠️ 如果你是通过其他包管理器(比如
),请使用对应的卸载命令,例如:
aptsudo apt remove -y kubelet kubeadm kubectl
5️⃣ 【(可选)查看 kubelet 相关日志,排查问题】
如果你在重置后仍想查看 kubelet 之前运行的日志,用于排查错误,可以运行:
sudo journalctl -xeu kubelet -f