【问题标题】:Azure Kubernetes (AKS) does not release public IPsAzure Kubernetes (AKS) 不发布公共 IP
【发布时间】:2018-02-28 09:43:30
【问题描述】:

我们在 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 仍然存在。尝试在上面的 cmets 中使用 loadBalanceIP 重用现有 IP 之一失败,“公共 ip 地址...被资源中的多个 ipconfigs 引用...”。

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

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

【问题讨论】:

  • 您好,在集群中部署应用程序时,您应该使用 apply 而不是 create。现在,如果您更新已经存在的应用程序,公共 IP 将不会改变。
  • 谢谢!这将减少客户流失,但仍不会释放旧地址,因此它只是权宜之计。如果每次创建负载均衡器时都会创建一个新地址,并且在销毁时不回收,那么它们最终会用完。
  • 是的。我也在使用AKS。但是,我没有遇到这个错误。当服务被删除时,它应该从外部负载均衡器中删除。
  • 您使用的是 Kubernetes 1.7.x 还是较新的版本之一?
  • 我有 k8s 1.8.1

标签: azure kubernetes azure-aks


【解决方案1】:

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

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

用 k8s 1.9.1 测试

【讨论】:

  • 如何查看 k8s 事件?你的意思是 kubectl describe 还是别的什么?至于另一点,在最初由支持人员建议的看似安全的修改之后,我们在 AKS 上遇到了严重问题,并且被明确告知不要触碰 MC 资源组中的任何内容,所以我不想做一些看似有效的事情现在,这会破坏以后的升级。
  • 通过使用kubectl get events,您可以获得集群中的事件列表。
  • 谢谢。它报告与 kubectl describe 相同的错误以及有关 cgroup memory.limit_in_bytes 的警告,但没有什么有趣的。
  • 好吧,我使用事件来了解哪些操作是序列化的,哪些操作是并行发生的。一些事件依赖于其他事件。它有助于创造一种感觉。
  • 这是一个错误。重新创建集群有所帮助。请注意,也无法手动删除 IP 地址,Azure 认为它们正在使用中。
猜你喜欢
  • 1970-01-01
  • 2019-09-30
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
相关资源
最近更新 更多