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

如何在ClusterIssuer中引用指定命名空间的Secret?

问题解答

1. ClusterIssuer 默认查找的命名空间

是的,ClusterIssuer 默认只会在 cert-manager 命名空间中查找指定的 secretName。

ClusterIssuer 是集群级资源,cert-manager 控制器运行在自身专属的命名空间(通常就是 cert-manager),处理 ClusterIssuer 的 CA 配置时,会默认从这个命名空间读取对应的 Secret。所以你在 postgres 命名空间创建的 postgres-operator-ca-certificate Secret,当前的 ClusterIssuer 无法访问到。

2. 是否建议用 Issuer 替代 ClusterIssuer?

这取决于你的实际使用场景:

  • 如果仅需为 postgres 命名空间内的 Certificate 签名:完全建议替换为 Issuer。将 Issuer 创建在 postgres 命名空间中,其 spec.ca.secretName 指向同命名空间的 postgres-operator-ca-certificate,就能正常读取到所需的 CA Secret,配置示例如下:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: postgres-operator-ca-certificate-issuer
  namespace: postgres
spec:
  ca:
    secretName: postgres-operator-ca-certificate
  • 如果需要跨多个命名空间为 Certificate 签名:Issuer 不适用(Issuer 是命名空间级资源,仅能为同命名空间的资源签名)。这种情况下,你可以将 postgres 命名空间中的 CA Secret 复制一份到 cert-manager 命名空间(保持 secretName 一致),ClusterIssuer 就能正常找到该 Secret。复制命令示例:
kubectl get secret postgres-operator-ca-certificate -n postgres -o yaml | sed 's/namespace: postgres/namespace: cert-manager/' | kubectl apply -f -

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:11:01