kubectl 删除 namespace 命名空间卡住

文章描述了一种在常规删除namespace遇到困难时,通过编辑namespace的json定义并移除finalizers来强制删除的方法。作者分享了详细步骤,包括使用kubectl获取namespace信息、编辑json、通过HTTPPUT请求发送更新,最终成功删除了命名空间。
摘要由CSDN通过智能技术生成
  • 执行删除 namespace 后处于卡顿已经3个多小时了
    在这里插入图片描述
  • 按照网上的 --force--force --grace-period=0 都没用,还是删不掉
    在这里插入图片描述
  • 在外面看到了一篇文章,试了之后有效,原文地址
    懒得跳转也可以看我这个,一样的

删除步骤

  • 首先将 namespace 的信息以 json 格式存储
    kubectl get namespace vela-system -o json > tmp.json

  • 编辑 tmp.json,删除 spec.finalizers 下的内容,使之变成空数组,其他的不做改动,具体改动如下
    删除前:
    在这里插入图片描述
    删除后:
    在这里插入图片描述

  • 在终端输入 kubectl proxy
    在这里插入图片描述

  • 新打开一个终端,输入
    curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/${NAMESPACE}/finalize
    替换一下 namespace,我这边是
    curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/vela-system/finalize

  • 执行后输出一堆内容,此时再 kubectl get ns | grep vela 已经查不到了,删除成功

{
  "kind": "Namespace",
  "apiVersion": "v1",
  "metadata": {
    "name": "vela-system",
    "uid": "734e8f18-129b-4731-8000-a6b5de4c4499",
    "resourceVersion": "559153399",
    "creationTimestamp": "2023-12-25T03:24:57Z",
    "deletionTimestamp": "2023-12-25T06:06:00Z",
    "labels": {
      "kubernetes.io/metadata.name": "vela-system"
    },
    "managedFields": [
      {
        "manager": "vela",
        "operation": "Update",
        "apiVersion": "v1",
        "time": "2023-12-25T03:24:57Z",
        "fieldsType": "FieldsV1",
        "fieldsV1": {
          "f:metadata": {
            "f:labels": {
              ".": {},
              "f:kubernetes.io/metadata.name": {}
            }
          }
        }
      },
      {
        "manager": "kube-controller-manager",
        "operation": "Update",
        "apiVersion": "v1",
        "time": "2023-12-25T06:06:06Z",
        "fieldsType": "FieldsV1",
        "fieldsV1": {
          "f:status": {
            "f:conditions": {
              ".": {},
              "k:{\"type\":\"NamespaceContentRemaining\"}": {
                ".": {},
                "f:lastTransitionTime": {},
                "f:message": {},
                "f:reason": {},
                "f:status": {},
                "f:type": {}
              },
              "k:{\"type\":\"NamespaceDeletionContentFailure\"}": {
                ".": {},
                "f:lastTransitionTime": {},
                "f:message": {},
                "f:reason": {},
                "f:status": {},
                "f:type": {}
              },
              "k:{\"type\":\"NamespaceDeletionDiscoveryFailure\"}": {
                ".": {},
                "f:lastTransitionTime": {},
                "f:message": {},
                "f:reason": {},
                "f:status": {},
                "f:type": {}
              },
              "k:{\"type\":\"NamespaceDeletionGroupVersionParsingFailure\"}": {
                ".": {},
                "f:lastTransitionTime": {},
                "f:message": {},
                "f:reason": {},
                "f:status": {},
                "f:type": {}
              },
              "k:{\"type\":\"NamespaceFinalizersRemaining\"}": {
                ".": {},
                "f:lastTransitionTime": {},
                "f:message": {},
                "f:reason": {},
                "f:status": {},
                "f:type": {}
              }
            }
          }
        },
        "subresource": "status"
      }
    ]
  },
  "spec": {},
  "status": {
    "phase": "Terminating",
    "conditions": [
      {
        "type": "NamespaceDeletionDiscoveryFailure",
        "status": "False",
        "lastTransitionTime": "2023-12-25T06:06:06Z",
        "reason": "ResourcesDiscovered",
        "message": "All resources successfully discovered"
      },
      {
        "type": "NamespaceDeletionGroupVersionParsingFailure",
        "status": "False",
        "lastTransitionTime": "2023-12-25T06:06:06Z",
        "reason": "ParsedGroupVersions",
        "message": "All legacy kube types successfully parsed"
      },
      {
        "type": "NamespaceDeletionContentFailure",
        "status": "False",
        "lastTransitionTime": "2023-12-25T06:06:06Z",
        "reason": "ContentDeleted",
        "message": "All content successfully deleted, may be waiting on finalization"
      },
      {
        "type": "NamespaceContentRemaining",
        "status": "True",
        "lastTransitionTime": "2023-12-25T06:06:06Z",
        "reason": "SomeResourcesRemain",
        "message": "Some resources are remaining: helmcharts.source.toolkit.fluxcd.io has 1 resource instances, helmreleases.helm.toolkit.fluxcd.io has 1 resource instances, helmrepositories.source.toolkit.fluxcd.io has 1 resource instances"
      },
      {
        "type": "NamespaceFinalizersRemaining",
        "status": "True",
        "lastTransitionTime": "2023-12-25T06:06:06Z",
        "reason": "SomeFinalizersRemain",
        "message": "Some content in the namespace has finalizers remaining: finalizers.fluxcd.io in 3 resource instances"
      }
    ]
  }

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

快,把我桶也提着

如果对您有帮助欢迎支持哦~

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

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

打赏作者

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

抵扣说明:

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

余额充值