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

向GKE ALB Ingress添加GCP托管证书后仅显示80端口问题咨询

问题分析与解决方法

这不是预期行为,问题根源在于你的Ingress清单未配置TLS字段,导致Kubernetes无法在Ingress资源中记录443端口的存在。

原因说明

GKE的GCE Ingress控制器在处理ingress.gcp.kubernetes.io/pre-shared-cert注解时,会自动在GCP端为传统ALB配置443端口和指定证书,但不会自动更新Kubernetes Ingress资源的spec.tls字段。而kubectl get ingress显示的端口信息是基于Ingress资源的spec和status字段,因此缺少TLS配置块时,只会显示默认的80端口。

你提到直接在GCP负载均衡器控制台添加证书后,kubectl get ingress能显示443端口,这是因为手动修改LB后,GCE控制器会将LB的状态同步到Ingress资源的status字段,但这种方式不符合Kubernetes声明式配置的最佳实践,不推荐长期使用。

解决步骤

修改你的Ingress清单,添加spec.tls字段,指定对应的域名即可。由于你使用的是GCP预共享证书,不需要创建实际的Kubernetes Secret,只需填写一个占位的secretName(控制器会优先使用注解指定的GCP证书,忽略该占位Secret)。

修改后的完整Ingress清单:

ingress:
  enabled: true
  annotations:
    ingress.gcp.kubernetes.io/pre-shared-cert: certificate-name-ssl
    kubernetes.io/ingress.class: 'gce'
  hosts:
    - host: api.hostname.com
      paths:
        - backend:
              service:
                name: my-service
                port:
                  number: 8080
        - path: /
          pathType: Prefix
  tls:
    - hosts:
        - api.hostname.com
      secretName: dummy-gcp-cert-secret  # 占位名称,无需实际创建

应用修改后的清单:

kubectl apply -f your-ingress-manifest.yaml

验证结果:
运行kubectl get ingress,此时应该能同时看到80和443端口,且GCP ALB的证书配置依然正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:23:19