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

GKE搭配Cloud DNS配置Ingress域名时负载均衡未自动创建问题咨询

根因说明

Ingress资源本身只是一组路由规则声明,必须有对应ingress.class的Ingress控制器在集群内运行,才会自动创建负载均衡并生效配置。你当前的Ingress指定了kubernetes.io/ingress.class: nginx,但GKE集群默认未部署Nginx Ingress控制器,没有组件处理该Ingress配置,因此status.loadBalancer字段为空,没有生成负载均衡资源。

另外纠正一个误解:Cloud DNS是域名解析服务,不会自动生成负载均衡资源,你需要等负载均衡创建完成拿到公网IP后,手动在你创建的解析Zone中添加A记录指向该IP即可。

可选解决方案

方案1:使用GKE原生GCE Ingress(无需额外安装组件,适配谷歌云生态)

适合不想额外维护Ingress控制器的场景:

  1. 修改你的values.yaml中ingress配置段:
ingress:
  create: true
  nginx: false # 关闭nginx专属配置
  maxBodySize: 250m
  host: bitbucket.my-domain.com
  path: "/"
  annotations: 
    kubernetes.io/ingress.class: "gce" # 指定使用GKE自带的GCE Ingress控制器
    # 可选:如果需要固定公网IP,提前在谷歌云VPC预留全球静态IP,填这里的名称
    kubernetes.io/ingress.global-static-ip-name: "你的静态IP名称"
  https: false
  tlsSecretName:
  1. 执行helm upgrade更新你的Bitbucket发布,等待3~5分钟后查看Ingress资源,status.loadBalancer字段会自动显示GCP全球负载均衡的公网IP。
  2. 进入Cloud DNS的解析Zone,为bitbucket.my-domain.com添加A记录,指向上述公网IP即可。

方案2:继续使用Nginx Ingress

适合习惯Nginx配置逻辑的场景:

  1. 首先在GKE集群中部署Nginx Ingress控制器,可直接通过Helm安装官方Chart,或者在谷歌云Marketplace中一键部署。
  2. 控制器部署完成后会自动创建一个GCP网络负载均衡,你可以在谷歌云控制台的负载均衡页面查看对应的公网IP,同时Ingress资源的status.loadBalancer字段也会同步该IP。
  3. 你当前的Ingress配置无需修改,控制器会自动识别处理。
  4. 进入Cloud DNS的解析Zone,为bitbucket.my-domain.com添加A记录,指向上述公网IP即可。

常见检查项

  • 确认Bitbucket对应的Service类型为ClusterIP即可,无需手动设置为LoadBalancer类型。
  • 配置完成后如果访问不通,先检查GCP防火墙规则是否放开了80/443端口的入站流量。
  • 如果后续需要开启HTTPS,配合GCE Ingress可直接使用谷歌云托管证书,无需手动管理证书文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:33:03