前提:如果手动删除kubectl delete all --all --namespace=<namespace>删除不了的情况下可以使用此方案
一:查找rancher接入集群的所有namespace
接入rancher的k8s集群namespace都是以cattle命名的
root@A800-gpu-node01:~# kubectl get namespaces | grep cattle cattle-fleet-system Active 152m cattle-impersonation-system Active 164m cattle-system Terminating 170mnamespace处于Terminating状态通过手动删除kubectl delete namespace cattle-fleet-system是无法删除的,通常是由于finalizers卡住导致的,需要修改yaml文件去解决无法删除的问题
二:修改finalizers的yaml文件内容删除finalizers部分配置
NAMESPACE=cattle-fleet-system kubectl get namespace $NAMESPACE -o json > ns.json # 手动编辑 ns.json 文件,删除 "spec.finalizers" 的数组部分。
三:替换修养完的finalizers的yaml文件内容并应用生效
kubectl replace --raw "/api/v1/namespaces/$NAMESPACE/finalize" -f ./ns.json
四:查看刚才Terminating的namespace是否删除成功
oot@A800-gpu-node01:~# kubectl get namespaces | grep cattle cattle-impersonation-system Terminating 176m cattle-system Terminating 3h1m可以看到这次删除成功了,其他的资源删除方法一致
五:为了确保所有可能的资源都已删除,可以尝试删除特定资源类型:
for ns in cattle-fleet-system cattle-impersonation-system cattle-system; do kubectl delete all --all -n $ns kubectl delete pvc --all -n $ns kubectl delete configmap --all -n $ns kubectl delete secret --all -n $ns kubectl delete ingress --all -n $ns kubectl delete role --all -n $ns kubectl delete rolebinding --all -n $ns done
六:如果还有什么附带的资源没有删除干净,可以用这个命令强制删除
对于无法通过标准方式删除的资源,使用 --grace-period=0 --force 强制删除: kubectl delete pod <pod-name> -n <namespace-name> --grace-period=0 --force七:重新导入k8s集群
先查看node节点kubelet配置中的USER_ACCOUNT,默认是default-auth
ps -ef| grep kubelet查看文件里边的默认用户是什么
八:添加权限用户
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user default-auth如果已有这一步可以忽略
九:通过yaml配置部署集群
kubectl apply -f https://10.10.2.100:8443/v3/import/gvs9zvjhgjhvgxhcnqqngfj7sq7hk49g77pxlwtvxcjrfczgmqtnnv_c-m-cr9j4xcs.yaml也可以在浏览器访问yaml的文件路径,拷贝文件内容到记事本里边,配置本地已有的镜像
然后在要接入的k8s集群的matserk节点kubectl create -f *.yaml去创建rancher的接入配置
十:如果新建的时候报错这些如何解决
(1)详细报错信息
强制删除某个名称空间后,再创建提示报错如下:
Error from server (InternalError): Internal error occurred: failed calling webhook "rancher.cattle.io.namespaces.create-non-kubesystem": failed to call webhook: Post "https://rancher-webhook.cattle-system.svc:443/v1/webhook/validation/namespaces?timeout=10s": service "rancher-webhook" not found
(2)解决方案
root@k8s-master rancher# kubectl get ValidatingWebhookConfiguration
root@k8s-master rancher# kubectl delete ValidatingWebhookConfiguration rancher.cattle.io
然后重新新建namespace
如何完整删除rancher中已接入的rancher集群并重新导入
心软且酷丶2024-09-07 10:41
相关推荐
张忠琳4 小时前
【NPU】Ascend Device Plugin —Part 6 K8s客户端 + 重复检测模块 超深度源码分析之二雨声不在4 小时前
私有 Docker Registry 排障实录:两个隐蔽的坑云川之下5 小时前
【k8s】SR‑IOV‑Network‑Operator 详解风曦Kisaki6 小时前
对象存储 MinIO 的两种生产环境适用部署方式Ai拆代码的曹操7 小时前
DaemonSet OnDelete 策略详解:为何 rollout restart 无效及正确迁移方案名字还没想好☜7 小时前
Kubernetes NetworkPolicy 实战:默认全通的坑与用标签做零信任隔离风曦Kisaki10 小时前
# Kubernetes(K8s)笔记Day13 :工作负载资源概述与 Job (CronJob)控制器Patrick在香港19 小时前
Python Docker镜像从1.2GB到89MB:多阶段构建的完整优化实录风曦Kisaki1 天前
# Kubernetes(K8s)笔记Day12 :K8s 七层代理(Ingress 和 Ingress Controller)雨辰AI1 天前
达梦 DM9 K8s 密评合规部署|等保三级 + 密评双标准安全加固(金融级实测通过)
四:查看刚才Terminating的namespace是否删除成功









