V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chesha1
V2EX  ›  Kubernetes

k8s 删除 namespace 一直 Terminating 怎么办?

  •  
  •   chesha1 · 296 天前 · 1806 次点击
    这是一个创建于 296 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各种方法都试过了,删除,强制删除,kubectl edit ns 删掉 finalizer 再删除都不行

    有没有什么方法能查到,到底是什么原因导致了 Terminating
    因为我到节点的物理机的/var/log 的各种日志里看了下,没看到明显的原因,kubectl describe 的信息也很少,看不到原因
    11 条回复    2024-01-23 10:36:53 +08:00
    CCIEliu
        1
    CCIEliu  
       296 天前   ❤️ 1
    留联系方式。
    seers
        2
    seers  
       296 天前 via Android   ❤️ 1
    看 kubelet 日志,crictl 日志
    dolphintwo
        3
    dolphintwo  
       296 天前   ❤️ 1
    要去 etcd 看了
    seers
        4
    seers  
       296 天前 via Android   ❤️ 1
    一般来说,crds 方面嫌疑比较大,可以优先排查
    sqfphoenix
        5
    sqfphoenix  
       296 天前   ❤️ 1
    我记得 describe 里面可以看到有哪些资源残留的吧,包含残留的资源和残留的 finalizer
    jason1121
        6
    jason1121  
       296 天前   ❤️ 1
    replace 试试

    ```
    kubectl get namespace "stucked-namespace" -o json \
    | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \
    | kubectl replace --raw /api/v1/namespaces/stucked-namespace/finalize -f -
    ```

    https://stackoverflow.com/questions/52369247/namespace-stuck-as-terminating-how-i-removed-it/59667608#59667608
    fengxsong
        7
    fengxsong  
       296 天前   ❤️ 1
    应该是去看 controller-manager 的日志才对。。。
    qoo2019
        8
    qoo2019  
       296 天前   ❤️ 1
    kubectl patch ns xxx -p '{"metadata":{"finalizers":null}}'

    试下
    baiyi
        9
    baiyi  
       296 天前   ❤️ 1
    经典问题,大概率是有什么 apiservice 之类的卡住了,也可以通过 replace 强删: https://github.com/kubernetes/kubernetes/issues/60807
    halozzz
        10
    halozzz  
       296 天前   ❤️ 1
    盲猜 CRDS 的原因。。 遇到过好几次了
    fangdajiang
        11
    fangdajiang  
       296 天前
    还没解决的话,可以这样尝试:

    kubectl get namespaces xxx -o json > tmp.json

    删除 finalizers 的值,变成 []

    开启 proxy: kubectl proxy

    curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/xxx/finalize

    qoo2019 的方法,我记得要写成: {"metadata":{"finalizers": [null]}}
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5842 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:54 · PVG 10:54 · LAX 18:54 · JFK 21:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.