我从我的AKS集群卸载了nginx-ingress,几乎所有的资源都被删除了我的主要服务,这是一种LoadBalancer仍然存在,我试图通过使用delete命令手动删除,但仍然没有删除。我不知道这是什么问题,请帮助我解决这个问题。先谢谢你了
vbopmzt11#
这可能是由于service.kubernetes.io/load-balancer-cleanup终结器。检查Azure-k8s: Not able to delete Load Balancer service?,可能会发生LB类型服务卡死的情况。我建议你运行kubectl edit svc service_name打开服务,删除下面的部分,并再次保存。
service.kubernetes.io/load-balancer-cleanup
kubectl edit svc service_name
finalizers: - service.kubernetes.io/load-balancer-cleanup
如果这没有帮助,请在您的问题中提供详细的详细删除输出+ kubectl describe svc <service-name>,如前所述
kubectl describe svc <service-name>
k3fezbri2#
(This不适合注解/从格式中受益)@Ashis @Vit是正确的,但我会补充一些关于终结器的澄清,以及为什么有时需要打补丁。同样在“这不是一个好的做法,以消除终结器”这是更准确地说,作为一个一般的经验法则,你不应该这样做。但重要的是要知道为什么你不应该这样做,因为这可以让你理解规则的例外/什么时候可以违反经验法则。
注:就是这样一个案例,原因如下
https://kubernetes.io/docs/concepts/overview/working-with-objects/finalizers/
提到有几个竞争条件类型的bug会让服务在删除时陷入困境。/使服务控制器处于混乱状态。(如删除和更新操作同时发生)或删除无法成功,因为已删除。终结器由于竞争条件bug而陷入不一致状态,因此永远不会被更新/删除。
https://cloud.google.com/kubernetes-engine/docs/troubleshooting#namespace_stuck_in_terminating_state
如何修复:
读取https://www.middlewareinventory.com/blog/kubectl-delete-stuck-what-to-do/下面是它所说内容的摘要
kubectl patch (service|ingress|pvc|etc) (name-of-resource) -p '{"metadata":{"finalizers":[]}}' --type=merge
export NS=istio
kubectl get ns $NS -o json | jq '.spec.finalizers=[]' | kubectl replace --raw /api/v1/namespaces/$NS/finalize -f -
2条答案
按热度按时间vbopmzt11#
这可能是由于
service.kubernetes.io/load-balancer-cleanup
终结器。检查Azure-k8s: Not able to delete Load Balancer service?,可能会发生LB类型服务卡死的情况。
我建议你运行
kubectl edit svc service_name
打开服务,删除下面的部分,并再次保存。如果这没有帮助,请在您的问题中提供详细的详细删除输出+
kubectl describe svc <service-name>
,如前所述k3fezbri2#
(This不适合注解/从格式中受益)
@Ashis @Vit是正确的,但我会补充一些关于终结器的澄清,以及为什么有时需要打补丁。
同样在“这不是一个好的做法,以消除终结器”这是更准确地说,作为一个一般的经验法则,你不应该这样做。但重要的是要知道为什么你不应该这样做,因为这可以让你理解规则的例外/什么时候可以违反经验法则。
注:就是这样一个案例,原因如下
finalizer的作用是什么?
https://kubernetes.io/docs/concepts/overview/working-with-objects/finalizers/
为什么资源会卡在不可删除的状态?
提到有几个竞争条件类型的bug会让服务在删除时陷入困境。/使服务控制器处于混乱状态。(如删除和更新操作同时发生)或删除无法成功,因为已删除。终结器由于竞争条件bug而陷入不一致状态,因此永远不会被更新/删除。
https://cloud.google.com/kubernetes-engine/docs/troubleshooting#namespace_stuck_in_terminating_state
如何修复:
读取https://www.middlewareinventory.com/blog/kubectl-delete-stuck-what-to-do/
下面是它所说内容的摘要
kubectl patch (service|ingress|pvc|etc) (name-of-resource) -p '{"metadata":{"finalizers":[]}}' --type=merge
export NS=istio
kubectl get ns $NS -o json | jq '.spec.finalizers=[]' | kubectl replace --raw /api/v1/namespaces/$NS/finalize -f -