Azure Kubernetes(AKS)不发布公共IP

Azure Kubernetes(AKS)不发布公共IP,azure,kubernetes,azure-aks,Azure,Kubernetes,Azure Aks,我们正在Azure(AKS)中使用托管Kubernetes,并且已经用完了公共IP地址。我们只需要一个,但AKS在每次部署服务时都会创建一个新的公共IP,并且在删除服务时不会将其删除。例如: apiVersion: v1 kind: Service metadata: name: somename spec: ports: - port: 443 targetPort: 443 selector: app: somename # Also tried this

我们正在Azure(AKS)中使用托管Kubernetes,并且已经用完了公共IP地址。我们只需要一个,但AKS在每次部署服务时都会创建一个新的公共IP,并且在删除服务时不会将其删除。例如:

apiVersion: v1
kind: Service
metadata:
  name: somename
spec:
  ports:
  - port: 443
    targetPort: 443
  selector:
    app: somename
  # Also tried this to reuse public IP in AKS MC resource group
  # https://docs.microsoft.com/en-my/azure/aks/static-ip
  # loadBalancerIP: x.x.x.x
  type: LoadBalancer
每次部署时(
kubectl create-f svc.yml
)都会创建一个新的公共IP。当它被删除(
kubectl delete-f svc.yml
)时,IP保持不变。尝试使用loadBalanceIP重用现有ip中的一个失败,如上面的注释所示,“公共ip地址…被资源中的多个IPConfig引用…”

我们已经创建了一个服务请求,但需要很长时间,所以我希望这会更快。我不敢仅仅删除AKS管理资源中的公共IP,因为这可能会导致后续问题


有没有办法安全地释放或重用公共IP?我们使用的是Kubernetes版本1.7.12。我们也删除了服务引用的部署,这没有什么区别。

它应该在一段时间后(最多5分钟)删除IP。因此,您遇到的问题是一个bug。您可以检查k8s事件以查找错误并查看它

此外,删除Azure资源是完全安全的。K8不见了也不会发疯


通过k8s 1.9.1测试,在集群中部署应用程序时,应该使用apply而不是create。现在,如果您更新已经存在的应用程序,公共IP将不会更改。谢谢!这将减少流失,但仍不会释放旧地址,所以这只是权宜之计。如果每次创建负载平衡器时都创建一个新地址,并且在销毁时没有回收,那么这些地址最终会用完。是的。我也在使用AKS。然而,我没有遇到这个错误。当服务被删除时,应该从外部负载平衡器中删除它。您是否使用Kubernetes 1.7.x或更新版本?我正在使用k8s 1.8.1如何检查k8s事件?你是说kubectl还是别的什么?至于另一点,在支持人员最初建议进行看似安全的修改后,我们与AKS之间出现了严重问题,并被明确告知不要接触MC资源组中的任何内容,因此,我不想做一些现在似乎有效的事情,这会破坏以后的升级。通过使用
kubectl get events
可以获得集群中的事件列表。谢谢。它报告了与kubectl Descripte相同的错误以及关于cgroup memory.limit_(以字节为单位)的警告,但没有什么有趣的。我使用事件来了解哪些操作是序列化的,哪些操作是并行的。某些事件依赖于其他事件。这有助于创造一种感觉,这是一个bug。重新创建集群有帮助。请注意,也无法手动删除IP地址,Azure认为它们正在使用中。