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

在Kubernetes中配置多主机Ingress并集成Let’s Encrypt证书

问题解决:GKE Ingress添加API子域名后SSL证书同步失败

根因分析

你遇到的404错误核心原因是证书覆盖范围不匹配:

  • 你以为<myDomain>.com的证书能覆盖www和api子域名,但Let's Encrypt的单域名证书默认只包含主域名本身,不会自动覆盖所有子域名。
  • GCE类型的Ingress要求TLS证书必须包含Ingress规则里所有的host域名,否则GCP负载均衡同步时会因为找不到匹配的SSL证书资源而报错。

解决方案

方案1:扩展证书覆盖的域名列表(推荐,无需DNS配置)

直接在Ingress的tls.hosts里添加所有需要的域名,让Cert-Manager生成包含主域名+两个子域名的多域名证书:

修改后的Ingress配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
  annotations:
    kubernetes.io/ingress.class: gce
    kubernetes.io/ingress.allow-http: "true"
    cert-manager.io/issuer: letsencrypt-staging
spec:
  tls:
    - secretName: web-ssl
      hosts:
        - <myDomain>.com
        - www.<myDomain>.com
        - api.<myDomain>.com
  rules:
    - host: "www.<myDomain>.com"
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: angular-service
                port:
                  number: 80
    - host: "api.<myDomain>.com"
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: spring-boot-service
                port:
                  number: 8080

方案2:使用通配符证书(适合未来新增子域名)

如果后续还要添加更多子域名,可配置通配符证书*.myDomain.com,但需要注意:

  • Let's Encrypt通配符证书必须用DNS01挑战验证,所以你需要修改Cert-Manager的Issuer/ClusterIssuer配置,添加DNS服务商的API密钥(比如Cloudflare、GCP DNS等)。
  • 修改Ingress的tls.hosts为- *.myDomain.com。

后续排查步骤

  1. 检查证书状态:执行kubectl get certificates,确认web-ssl的状态为Ready。
  2. 查看证书事件:如果证书未就绪,执行kubectl describe certificate web-ssl,排查挑战失败的具体原因(比如HTTP01的临时Ingress是否正常,DNS01的解析记录是否生效)。
  3. 清理残留资源:如果之前的负载均衡资源有残留,先删除旧Ingress和证书,再重新应用配置:
    kubectl delete ingress web-ingress
    kubectl delete secret web-ssl
    kubectl apply -f your-ingress.yaml
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:20:51