Azure Kubernetes (AKS) 不释放 public 个 IP

Azure Kubernetes (AKS) does not release public IPs

我们在 Azure (AKS) 中使用托管 Kubernetes,并且在 public 个 IP 地址中有 运行 个。我们只需要一个,但 AKS 会在每次部署服务时创建一个新的 public 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) 都会创建一个新的 public IP。当它被删除时 (kubectl delete -f svc.yml) IP 仍然存在。如上面的评论所示,尝试将现有 IP 之一与 loadBalanceIP 重用失败,"Public ip address ... is referenced by multiple ipconfigs in resource ..."。

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

有没有办法安全释放或重复使用 public IP?我们正在使用 Kubernetes 版本 1.7.12。我们也删除了服务引用的部署,这没有区别。

它应该会在一段时间后(最多 5 分钟)删除 IP。所以你遇到的问题是一个错误。可以查看k8s事件,找到错误再看。

此外,删除 Azure 资源是绝对安全的。如果他们走了,k8s 不会害怕。

使用 k8s 1.9.1 测试