侧边栏壁纸
博主头像
jinn博客博主等级

行动起来,活在当下

  • 累计撰写 14 篇文章
  • 累计创建 5 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

强制删除Rancher命名空间

jinn
2024-09-13 / 0 评论 / 0 点赞 / 38 阅读 / 4682 字

强制删除Rancher命名空间

参考文档:
https://blog.csdn.net/weixin_42789427/article/details/137509735
https://blog.csdn.net/qq_31152023/article/details/107056559

1. 命名空间无法删除问题描述

删除命名空间后 一直处于 Terminating 状态

[root@k8s-master download]# kubectl  get ns
NAME                         STATUS        AGE
istio-system                 Terminating   197d

1.1 问题解决方案

# 查看namespace定义的json配置,编辑json文件并删除掉spec部分。
kubectl  get ns istio-system  -o json > istio.json

查看内容 并删除finalizers内容

# 删除 metadata 字段和 spec 字段的 并删除finalizers内容 相关内容
# 展示部分 内容如下

{
    "apiVersion": "v1",
    "kind": "Namespace",
    "metadata": {
        "annotations": {
            "cattle.io/status": "{\"Conditions\":[{\"Type\":\"ResourceQuotaInit\",\"Status\":\"True\",\"Message\":\"\",\"LastUpdateTime\":\"2023-11-28T06:43:28Z\"},{\"Type\":\"InitialRol
esPopulated\",\"Status\":\"True\",\"Message\":\"\",\"LastUpdateTime\":\"2023-11-28T06:43:28Z\"}]}",
            "lifecycle.cattle.io/create.namespace-auth": "true"
        },
        "creationTimestamp": "2023-11-28T06:43:31Z",
        "deletionTimestamp": "2024-06-12T07:26:47Z",
		# 删除如下内容
		###################################################
        "finalizers": [
            "controller.cattle.io/namespace-auth"
        ],
		##################################################
        "labels": {
            "kubernetes.io/metadata.name": "istio-system"
        },
        "name": "istio-system",
        "resourceVersion": "77873541",
        "uid": "3345590a-10a7-465d-9668-ddc035f3f6f9"
    },
	# 删除spec内容
       ################################
    "spec": {},
     ################################

开启一个接口地址

[root@k8s-master ~]# kubectl proxy
Starting to serve on 127.0.0.1:8001

请求接口删除ns

curl -k -H "Content-Type: application/json" -X PUT --data-binary @istio.json http://127.0.0.1:8001/api/v1/namespaces/命名空间的名字/finalize

2. rancher命名空间删除后,引起的无法创建命名空间问题

2.1 问题描述

[haima@KS-STAG-NODE01 ~]$ kubectl create namespace test01
Error from server (InternalError): Internal error occurred: failed calling webhook "rancher.cattle.io.namespaces.create-non-kubesystem": Post "https://rancher-webhook.cattle-system.svc:443/v1/webhook/validation/namespaces?timeout=10s": service "rancher-webhook" not found

2.2 解决方案

# 查找rancher相关
kubectl get MutatingWebhookConfiguration |grep rancher
# 删除rancher相关
kubectl delete MutatingWebhookConfiguration rancher.cattle.io

# 查找rancher相关
kubectl get ValidatingWebhookConfiguration |grep rancher
# 删除rancher相关
kubectl delete ValidatingWebhookConfiguration rancher.cattle.io

删除后创建ns ,查看是否可以创建成功

MutatingWebhookConfiguration

在 Kubernetes 中,MutatingWebhookConfiguration 是一种资源,用于配置 Mutating Admission Webhook。Mutating Admission Webhook 是一种 Kubernetes 功能,它允许您定义自定义逻辑以修改正在创建或更新的对象,例如 Pod、Deployment 等。这种修改可以是自动化的,例如为容器注入 sidecar 容器、设置标签或注解等。

MutatingWebhookConfiguration 允许您配置 Webhook 服务的端点以及何时触发 Webhook 的条件。例如,您可以配置 MutatingWebhookConfiguration,在每次创建新的 Pod 时触发一个 Webhook,该 Webhook 会在 Pod 中注入一些容器或者修改 Pod 的标签或注解。

总的来说,MutatingWebhookConfiguration 提供了一种强大的机制,可以在 Kubernetes 中实现自定义的对象修改逻辑,从而实现更灵活和智能的资源管理。

ValidatingWebhookConfiguration

在 Kubernetes 中,ValidatingWebhookConfiguration 是一种资源,用于配置 Validating Admission Webhook。Validating Admission Webhook 是 Kubernetes 的一种功能,它允许您定义自定义逻辑来验证正在创建或更新的对象,例如 Pod、Deployment 等。这种验证逻辑可以用于强制执行一些策略或规则,以确保对象的创建或更新满足特定的要求。

ValidatingWebhookConfiguration 允许您配置 Webhook 服务的端点以及何时触发 Webhook 的条件。例如,您可以配置 ValidatingWebhookConfiguration,在每次创建新的 Pod 时触发一个 Webhook,该 Webhook 会验证 Pod 是否符合特定的策略,例如检查容器的资源请求、标签或注解等。

总的来说,ValidatingWebhookConfiguration 提供了一种强大的机制,可以在 Kubernetes 中实现自定义的对象验证逻辑,从而确保对象的创建或更新符合特定的规范或策略。

议使用官方推荐方法卸载rancher接入

https://docs.rancher.cn/docs/rancher2/system-tools/_index/
0

评论区