如何引用由证书管理器生成的具有名称后缀名的机密?

问题描述

场景:我正在Rancher Kubernetes中部署Apache Pulsar v2.6.0,以及jetstack / cert-manager:

helm install cert-manager jetstack/cert-manager --namespace cert-manager --set installCRDs=true
helm install --values ./values.yaml pulsar apache/pulsar

我还为所有Pulsar组件配置了TLS,如下所示(values.yaml):


tls:
  enabled: true
  # common settings for generating certs
  common:
    keySize: 2048
  # settings for generating certs for proxy
  proxy:
    enabled: true
  # settings for generating certs for broker
  broker:
    enabled: true
  # settings for generating certs for bookies
  bookie:
    enabled: true
  # settings for generating certs for zookeeper
  zookeeper:
    enabled: true

但是,cert-manager会生成带有哈希后缀的机密名称,因此在创建例如Kubernetes抱怨说,它是一个Zookeeper吊舱,它找不到tls机密,并失败,并发生事件“ MountVolume.SetUp为卷“ zookeeper-certs”设置失败:机密“ pulsar-tls-zookeeper”未找到”。

有什么想法如何处理这种情况吗?

解决方法

您可以为秘密禁用哈希后缀,以便更容易预测名称:

generatorOptions:
  disableNameSuffixHash: true
,

我在这里找到了答案:https://github.com/jetstack/cert-manager/issues/3283

生成的机密(包括哈希后缀)用作密钥轮换的下一个私钥。接下来将生成同时包含当前密钥和证书(其他证书不包含)的正确机密。但是,由于为发行者生成ca证书时发生错误,因此不会发生。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...