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

如何通过Helm Chart安装ingress仅创建内部负载均衡不生成外部负载均衡

解决方案:Helm安装ingress-nginx时仅生成内部负载均衡

核心原理:ingress-nginx默认会创建公网LoadBalancer类型的Service,要改为仅生成内部负载均衡,只需在安装时通过Helm参数指定对应云厂商的内部LB注解调整Service配置即可,无需手动提前创建负载均衡资源。

步骤1:确认对应云厂商的内部LB注解

不同云服务商的内部负载均衡注解不同,常见云厂商对应注解如下:

  • 阿里云:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  • 腾讯云:service.kubernetes.io/qcloud-loadbalancer-internal-subnetid: <你的子网ID>
  • AWS:service.beta.kubernetes.io/aws-load-balancer-internal: "true"
  • GCP/GKE:networking.gke.io/load-balancer-type: "Internal"
  • 华为云:kubernetes.io/elb.is_internal: "true"

注意:你之前尝试修改的internal.enabled配置是用于同时创建公网+内部两个独立LB的参数,开启后会保留公网LB,不符合你仅需内部LB的需求,保持默认关闭即可,无需修改该配置。

步骤2:两种配置方式可选

方式一:直接通过命令行传参安装(无需修改values文件)

直接在helm安装命令中追加参数即可,以GKE环境为例,命令如下:

INGRESS_EXAMPLE_NS=cloudbees-core
kubectl create ns $INGRESS_EXAMPLE_NS
kubens $INGRESS_EXAMPLE_NS

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

# 安装时指定内部LB注解,仅生成内部负载均衡
helm upgrade -i ingress-nginx ingress-nginx/ingress-nginx \
  --set controller.service.annotations."networking\.gke\.io/load-balancer-type"=Internal

如果是其他云厂商,替换注解的键值即可。

方式二:修改values.yaml文件后安装

你之前导出的values-nginx.yaml文件,找到controller.service配置段,调整如下:

controller:
  service:
    # 给主Service加内部LB注解即可
    annotations:
      networking.gke.io/load-balancer-type: "Internal" # 替换为对应云厂商的注解

修改保存后执行安装:

helm upgrade -i ingress-nginx ingress-nginx/ingress-nginx -f values-nginx.yaml

验证配置是否生效

安装完成后执行以下命令,查看EXTERNAL-IP列是否为集群内网段IP,非公网IP即为配置成功:

kubectl get svc ingress-nginx-controller

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:15:08