You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AKS上通过同一Ingress控制器同时暴露IPv4和IPv6流量?

在AKS上用单ingress-nginx控制器实现DualStack支持

刚好在AKS上折腾过ingress-nginx双栈的配置,给你分享下不用部署两个控制器的解决方案,核心是利用AKS负载均衡器的双栈特性和ingress-nginx Helm Chart的对应配置项:

1. 前提:确保AKS集群已启用DualStack网络

首先你的AKS集群必须支持双栈,不管是新建还是现有集群都可以配置:

  • 新建集群:创建时添加双栈启用参数
    az aks create --name myAKSCluster --resource-group myResourceGroup \
      --network-plugin azure --network-policy azure \
      --enable-dual-stack --node-count 3
    
  • 现有集群:通过升级启用双栈(注意需要集群满足网络配置要求,比如虚拟网络已有IPv6地址空间)
    az aks update --name myAKSCluster --resource-group myResourceGroup --enable-dual-stack
    

2. 配置ingress-nginx Helm Chart的双栈参数

你提到的controller.service.loadBalancerIP确实只能填单个IP,但Chart里还有一个复数形式的loadBalancerIPs参数,支持传入IPv4和IPv6的IP数组,再配合Azure的双栈注解就能实现需求:

示例values.yaml配置

controller:
  service:
    type: LoadBalancer
    # 不要用单个loadBalancerIP,改用数组形式的loadBalancerIPs
    loadBalancerIPs:
      - "10.0.0.10"  # 你提前预留的IPv4静态公共IP
      - "2001:db8::1" # 你提前预留的IPv6静态公共IP
    # 关键注解:告诉Azure负载均衡器启用双栈模式
    annotations:
      service.beta.kubernetes.io/azure-load-balancer-dual-stack: "true"

如果不需要固定IP,也可以省略loadBalancerIPs,只保留双栈注解,Azure会自动分配一对IPv4+IPv6的公共IP给负载均衡器。

3. 安装/升级ingress-nginx部署

用你的自定义values文件安装或升级Helm Chart:

  • 首次安装:
    helm install ingress-nginx ingress-nginx/ingress-nginx \
      --namespace ingress-nginx --create-namespace \
      -f your-dualstack-values.yaml
    
  • 升级现有部署:
    helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
      --namespace ingress-nginx \
      -f your-dualstack-values.yaml
    

4. 验证双栈配置

执行以下命令查看Service状态:

kubectl get service ingress-nginx-controller -n ingress-nginx

你会看到EXTERNAL-IP列同时显示IPv4和IPv6地址(用逗号分隔),此时分别用IPv4和IPv6地址访问你的Ingress域名/路径,都应该能正常路由到后端服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:42:50