You need to enable JavaScript to run this app. 如何配置Azure避免删除服务/ingress-controller时误删公网IP
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Azure避免删除服务/ingress-controller时误删公网IP

自动删除公网IP的成因

这是AKS云控制器的默认清理逻辑:当LoadBalancer类型的Service被删除时,控制器会自动回收它关联的、被标记为Kubernetes托管的公网IP资源。如果仅在配置中填写loadBalancerIP,没有显式声明该IP是用户自定义的外部资源,控制器会自动给这个公网IP打上托管标记,哪怕IP是你手动创建的,也会在Service删除时被一并清理。

避免公网IP被自动删除的配置方法

核心配置项调整

在你现有的nginx-ingress Helm values基础上,补充以下注解,显式告知云控制器该公网IP是用户自主管理的资源,不要执行清理动作:

controller:
  service:
    loadBalancerIP: "<my-public-ip>"
    annotations:
      # 指定公网IP所在的资源组,避免控制器跨资源组扫描误删
      service.beta.kubernetes.io/azure-load-balancer-resource-group: "<你的公网IP所属资源组名称>"
      # 显式指定现有公网IP的资源名称,标记为用户自定义资源
      service.beta.kubernetes.io/azure-pip-name: "<你的公网IP资源名称>"

额外资源层面的防护

  • 如果你手动创建的公网IP放在了AKS自动生成的节点资源组(命名格式为MC_<原资源组名>_<集群名>_<部署区域>)中,需要给该公网IP添加标签kubernetes.azure.com/managed: "false",显式标记资源为非托管状态,阻止控制器的自动清理流程。
  • 长期留存的公网IP尽量放置在独立的自定义资源组中,不要放在AKS自动生成的节点资源组内,从资源隔离层面避免集群升级、资源组回收时的意外清理风险。
  • 配置中的loadBalancerIP值需要和手动创建的公网IP的实际公网地址完全一致,避免资源匹配失败。
配置生效后的效果

完成上述配置后,即使删除nginx-ingress所在的整个命名空间,云控制器仅会清理LoadBalancer关联的负载均衡转发规则、后端池配置,不会删除你手动创建的公网IP资源,原有DNS解析配置可以直接复用,无需频繁调整。

内容的提问来源于stack exchange,提问作者Ilya Chernomordik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 22:24:01