k8s Namespace 中残留的资源存在 Finalizers 且相应软件已卸载​

Namespace 中残留的资源存在 Finalizers 且相应软件已卸载​

查看 namespace yaml:

$ kubectl get ns istio-system -o yaml
...
status:
  conditions:
  - lastTransitionTime: "2021-12-07T05:07:14Z"
    message: 'Some resources are remaining: kialis.kiali.io has 1 resource instances'
    reason: SomeResourcesRemain
    status: "True"
    type: NamespaceContentRemaining
  - lastTransitionTime: "2021-12-07T05:07:14Z"
    message: 'Some content in the namespace has finalizers remaining: kiali.io/finalizer
      in 1 resource instances'
    reason: SomeFinalizersRemain
    status: "True"
    type: NamespaceFinalizersRemaining
  phase: Terminating

"Some content in the namespace has finalizers remaining: kiali.io/finalizer in 1 resource instances’"这句话是关键
去查找kiali.io资源

可以看到 SomeResourcesRemain 和 SomeFinalizersRemain,对应资源类型是 kialis.kiali.io,可以获取看一下:

$ kubectl -n istio-system get kialis.kiali.io
NAME    AGE
kiali   5d23h

这个例子明显看是安装过 kiali,且有 kiali 残留的 crd 资源,但 kiali 已卸载。 清理 namespace 时清理 kiali 资源时,发现资源上存在 finilizer,需等待 kiali 本身进一步清理,由于 kiali 已卸载就无法清理,导致一直在等待。
这个时候我们可以手动删下资源上的 finalizer 即可:

kubectl -n istio-system edit kialis.kiali.io kiali

Metrics server 被删除​

删除 ns 时,apiserver 会调注册上去的扩展 api 去清理资源,如果扩展 api 对应的服务也被删了,那么就无法清理完成,也就一直卡在 Terminating。
下面的例子就是使用 prometheus-adapter 注册的 resource metrics api,但 prometheus-adapter 已经被删除了:

$ kubectl get apiservice
...
v1beta1.metrics.k8s.io                 monitoring/prometheus-adapter     False (ServiceNotFound)   75d
...

强删 namespace 方法​
有时候实在找不到原因,也可以强删 namespace,以下是强删方法:

NAMESPACE=delete-me
kubectl get ns $NAMESPACE -o json | jq '.spec.finalizers=[]' > ns.json
kubectl proxy --port=8899 &
PID=$!
curl -X PUT http://localhost:8899/api/v1/namespaces/$NAMESPACE/finalize -H "Content-Type: application/json" --data-binary @ns.json
kill $PID

来源:https://imroc.cc/kubernetes-troubleshooting/methods/cluster/namespace-terminating

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值