GKE负载均衡器支持超100张证书的可行方案咨询
可行方案:GKE下支持超100个自定义客户域名的HTTPS配置
方案1:使用多域名SAN证书打包客户域名
Google Managed Certificates单张证书支持最多100个域名(SAN扩展),可将客户域名按组打包到单张证书中,把总证书数量控制在100以内。
- 操作方式:在GKE Ingress的
tls配置块中,将同一组的客户域名(比如100个)列在hosts字段下,同时创建对应包含这些域名的ManagedCertificate资源。 - 优势:完全依托Google原生服务,无需额外维护,证书自动续约、管理。
- 限制:单证书最多100个域名,若有N个客户,需
ceil(N/100)张证书,只要N≤10000就不会触发100张证书的上限。
方案2:拆分Ingress资源分组管理域名
将客户域名按逻辑分组(比如按行业、注册时间),每组对应一个独立的Ingress资源,每个Ingress关联一张包含该组域名的SAN证书。
- 操作方式:每个Ingress配置相同的
backend.serviceName指向你的应用服务,仅tls.hosts和关联的ManagedCertificate不同。GKE会自动将多个Ingress的流量路由到同一个后端负载均衡器(全局LB场景下)。 - 优势:域名分组管理更清晰,可针对不同组配置不同的路由规则或限流策略。
- 注意:确保Ingress的后端配置一致,避免重复创建负载均衡器增加成本。
方案3:部署Cert-Manager替代Google Managed Certificates
Cert-Manager是Kubernetes生态的证书管理工具,不受Google Managed Certificates的100张限制,可从Let's Encrypt、ZeroSSL等CA自动申请、续约证书。
- 操作步骤:
- 在GKE集群中部署Cert-Manager(使用helm或yaml清单)。
- 创建
ClusterIssuer或Issuer资源,配置与CA的对接(比如Let's Encrypt的ACME挑战)。 - 为客户域名(或域名组)创建
Certificate资源,Ingress引用该证书完成HTTPS终止。
- 优势:支持无限量证书(受限于CA的配额),灵活适配各种域名场景,自定义证书有效期、续约策略。
- 劣势:需要维护Cert-Manager组件,处理ACME挑战的域名解析配置(比如DNS01挑战需配置域名的DNS记录)。
方案4:使用自定义Ingress控制器(如Nginx Ingress)
部署第三方Ingress控制器(如Nginx Ingress Controller),由控制器负责HTTPS终止和SNI路由,绕过Google Managed Certificates的限制。
- 操作方式:
- 在GKE中部署Nginx Ingress Controller,配置LoadBalancer类型的Service暴露入口。
- 使用Cert-Manager为客户域名申请证书,挂载到Nginx控制器中。
- 为每个客户域名创建Ingress资源,配置SNI规则转发到后端应用。
- 优势:完全自定义HTTPS配置,支持海量域名,可配置高级路由规则、WAF等。
- 劣势:需自行维护Ingress控制器和证书生命周期,排查问题的复杂度高于原生服务。
内容的提问来源于stack exchange,提问作者GRS
相关产品推荐
相关产品推荐

