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

如何在Ingress的YAML文件中使用已创建的TLS Secret

正确配置Ingress使用TLS Secret的方法

你通过kubectl create secret tls server --key server.key --cert server.crt创建的是标准Kubernetes TLS Secret,这类Secret无需使用nginx.ingress.kubernetes.io/ssl-certificate和nginx.ingress.kubernetes.io/ssl-certificate-key注解,直接在Ingress的spec.tls字段中引用即可。

你当前的配置存在两个问题:

  • 错误使用注解指定证书,标准TLS Secret不需要这种方式
  • ssl-certificate-key填写的server.key无效,因为TLS Secret已经封装了证书和密钥,无需分别指定

以下是修正后的完整Ingress YAML:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: alpha-ingress-srv
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/use-regex: "true"
spec:
  tls:
    - hosts:
        - kavishkamk.live
      secretName: server # 引用你创建的TLS Secret名称
  rules:
    - host: kavishkamk.live
      http:
        paths:
          - path: /api/users/?(.*)
            pathType: Prefix
            backend:
              service:
                name: alpha-auth-srv
                port:
                  number: 4000

补充说明:

  • spec.tls.hosts必须和Ingress规则中的host完全一致,这样Ingress Controller才会为该域名匹配对应证书
  • 确保TLS Secret和Ingress资源处于同一个命名空间中,否则需要额外配置跨命名空间引用(推荐两者同namespace)
  • 直接删除原配置中的证书相关注解,Ingress Controller会自动从spec.tls.secretName指定的Secret中读取证书和密钥

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:40:45