【问题标题】:`kubectl delete service` gets stuck in 'Terminating' state`kubectl delete service` 卡在 'Terminating' 状态
【发布时间】:2020-10-30 01:02:47
【问题描述】:

我正在尝试删除我编写并部署到 Azure Kubernetes 服务的服务(以及随附的所需 Dask 组件),当我运行 kubectl delete -f my_manifest.yml 时,我的服务卡在了 Terminating 状态。控制台告诉我它已被删除,但命令挂起:

> kubectl delete -f my-manifest.yaml
service "dask-scheduler" deleted
deployment.apps "dask-scheduler" deleted
deployment.apps "dask-worker" deleted
service "my-service" deleted
deployment.apps "my-deployment" deleted

我必须Ctrl+C这个命令。当我检查我的服务时,Dask 已成功删除,但我的自定义服务没有。如果我尝试手动删除它,它同样会挂起/失败:

> kubectl get services
NAME                TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)                      AGE
kubernetes          ClusterIP      x.x.x.x      <none>        443/TCP                      18h
my-service          LoadBalancer   x.x.x.x      x.x.x.x       80:30786/TCP,443:31934/TCP   18h

> kubectl delete service my-service
service "my-service" deleted

This question 说先删除 pod,但我所有的 pod 都被删除了(kubectl get pods 什么也不返回)。还有this closed K8s issue--wait=false 可能会修复前台级联删除,但这不起作用并且似乎不是这里的问题(因为豆荚本身已经被删除)。

我假设我可以完全清除我的 AKS 群集并重新创建,但这是最后的选择。我不知道它是否相关,但我的服务使用 the azure-load-balancer-internal: "true" annotation 作为服务,并且我有一个 Web 应用程序部署到我的 VNet 并使用此服务。

还有其他方法可以强制关闭此服务吗?

【问题讨论】:

  • 发布kubectl describe service my-service 的输出。您可能在删除 LB 时遇到问题。

标签: azure kubernetes azure-aks


【解决方案1】:

感谢@4c74356b41 建议查看kubectl describe service my-service(由于某种原因我没有考虑过),我看到了这个警告:

Code="LinkedAuthorizationFailed" Message="对象 id 为 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' 的客户端 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' 有权执行操作 'Microsoft.Network/loadBalancers/在范围'/subscriptions//resourceGroups//providers/Microsoft.Network/loadBalancers/kubernetes-internal'上写入';但是,它无权执行操作'Microsoft.Network/virtualNetworks/subnets/在链接范围“/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks//subnets/”或链接范围上加入/操作无效。

(客户端和对象 id GUID 的值相同。)

这表明这不完全是 Kubernetes 问题,而是 Azure 生态系统中的更多权限问题。我查看了门户,并没有在我的任何用户、组或应用程序中找到该 GUID,所以我不确定它指的是什么。但是,我将 Owner 角色授予此客户端 ID,几分钟后,该服务被删除。

az role assignment create `
    --role Owner `
    --assignee xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 2016-05-28
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2017-07-25
    • 2021-06-29
    • 1970-01-01
    • 2018-02-09
    相关资源
    最近更新 更多