10.5. 使用 CertManager 自定义资源自定义 cert-manager Operator


为 Red Hat OpenShift 安装 cert-manager Operator 后,您可以通过配置 CertManager 自定义资源(CR)来执行以下操作:

  • 配置参数以修改 cert-manager 组件的行为,如 cert-manager 控制器、CA 注入器和 Webhook。
  • 为控制器 pod 设置环境变量。
  • 定义资源请求和限值来管理 CPU 和内存使用情况。
  • 配置调度规则,以控制 pod 在集群中运行的位置。

CertManager CR YAML 文件示例

apiVersion: operator.openshift.io/v1alpha1
kind: CertManager
metadata:
  name: cluster
spec:
  controllerConfig:
    overrideArgs:
      - "--dns01-recursive-nameservers=8.8.8.8:53,1.1.1.1:53"
    overrideEnv:
      - name: HTTP_PROXY
        value: http://proxy.example.com:8080
    overrideResources:
      limits:
        cpu: "200m"
        memory: "512Mi"
      requests:
        cpu: "100m"
        memory: "256Mi"
    overrideScheduling:
      nodeSelector:
        custom: "label"
      tolerations:
        - key: "key1"
          operator: "Equal"
          value: "value1"
          effect: "NoSchedule"
    overrideReplicas: 2
#...

  webhookConfig:
    overrideArgs:
#...
    overrideResources:
#...
    overrideScheduling:
#...
    overrideReplicas:
#...

  cainjectorConfig:
    overrideArgs:
#...
    overrideResources:
#...
    overrideScheduling:
#...
    overrideReplicas:
#...

警告

要覆盖不支持的参数,您可以在 CertManager 资源中添加 spec.unsupportedConfigOverrides 部分,但不支持使用 spec.unsupportedConfigOverrides

10.5.1. CertManager 自定义资源中的字段解释

要为 Red Hat OpenShift 配置 cert-manager Operator 的核心组件,请使用 CertManager 自定义资源(CR)。您可以定义 cert-manager 控制器的设置,如 spec.controllerConfig 字段,以自定义部署。

Red Hat OpenShift 的 cert-manager Operator 的核心组件如下:

  • cert-manager controller:您可以使用 spec.controllerConfig 字段来配置 cert-manager 控制器 pod。
  • Webhook:您可以使用 spec.webhookConfig 字段来配置 Webhook pod,该 pod 处理验证和变异请求。
  • CA injector:您可以使用 spec.cainjectorConfig 字段来配置 CA 注入器 pod。

下表列出了您可以在 CertManager CR 的 spec.controllerConfigspec.webhookConfigspec.cainjectorConfig 部分中配置的常用字段。

Expand
表 10.1. cert-manager 组件的 CertManager CR 中的常见可配置字段
字段类型描述

overrideArgs

string

您可以覆盖 cert-manager 组件支持的参数。

overrideEnv

dict

您可以覆盖 cert-manager 控制器支持的环境变量。此字段只支持 cert-manager 控制器组件。

overrideReplicas

int

您可以为 cert-manager 组件配置副本。默认值为 1。对于生产环境,建议使用以下副本数:

  • controller: 2
  • cainjector: 2
  • webhook: 最少为 3。

如需更多信息,请参阅高可用性

overrideResources

object

您可以为 cert-manager 组件配置 CPU 和内存限值。

overrideScheduling

object

您可以为 cert-manager 组件配置 pod 调度限制。

10.5.1.2. cert-manager 组件的覆盖参数

您可以在 CertManager CR 的 spec.controllerConfig,spec.webhookConfig, 和 spec.cainjectorConfig 部分中为 cert-manager 组件配置覆盖参数。

下表描述了 cert-manager 组件的覆盖参数:

Expand
表 10.2. cert-manager 组件的覆盖参数
参数组件描述

--dns01-recursive-nameservers=<server_address>

Controller

提供以逗号分隔的名称服务器列表,以查询 DNS-01 自我检查。命名空间的指定形式可以是 <host>:<port>(例如 1.1.1.1:53),或使用 DNS over HTTPS (DoH)(例如 https://1.1.1.1/dns-query)。

注意

仅从 cert-manager Operator for Red Hat OpenShift version 1.13.0 或更高版本开始才支持 DNS over HTTPS (DoH)。

--dns01-recursive-nameservers-only

Controller

指定只使用递归名称服务器,而不是检查与该域关联的权威名称服务器。

--acme-http01-solver-nameservers=<host>:<port>

Controller

提供以逗号分隔的 <host>:<port> 名称服务器列表,以查询自动证书管理环境(ACME) HTTP01 自我检查。例如,--acme-http01-solver-nameservers=1.1.1.1:53

--metrics-listen-address=<host>:<port>

Controller

指定指标端点的主机和端口。默认值为 --metrics-listen-address=0.0.0.0:9402

--issuer-ambient-credentials

Controller

您可以使用此参数配置 ACME Issuer,以使用 ambient 凭证来解决 DNS-01 质询。

--enable-certificate-owner-ref

Controller

此参数将证书资源设置为存储 TLS 证书的 secret 的所有者。如需更多信息,请参阅"删除证书时自动删除 TLS secret"。

--acme-http01-solver-resource-limits-cpu

Controller

定义 ACME HTTP-01 solver pod 的最大 CPU 限制。默认值为 100m

--acme-http01-solver-resource-limits-memory

Controller

定义 ACME HTTP-01 solver pod 的最大内存限值。默认值为 64Mi

--acme-http01-solver-resource-request-cpu

Controller

定义 ACME HTTP-01 solver pod 的最小 CPU 请求。默认值为 10m

--acme-http01-solver-resource-request-memory

Controller

定义 ACME HTTP-01 solver pod 的最小内存请求。默认值为 64Mi

--certificate-request-minimum-backoff-duration

Controller

指定证书请求的最小 backoff 持续时间。默认值为 1h0m0s

--v=<verbosity_level>

Controller, Webhook, CA injector

指定日志级别详细程度,以确定日志消息的详细程度。

10.5.1.3. cert-manager 控制器的可覆盖环境变量

您可以在 CertManager CR 的 spec.controllerConfig.overrideEnv 字段中为 cert-manager 控制器配置可覆盖环境变量。

下表描述了 cert-manager 控制器的超量环境变量:

Expand
表 10.3. cert-manager 控制器的可覆盖环境变量
环境变量描述

HTTP_PROXY

用于传出 HTTP 请求的代理服务器。

HTTPS_PROXY

用于传出 HTTPS 请求的代理服务器。

NO_PROXY

绕过代理的主机列表(以逗号分隔)。

10.5.1.4. cert-manager 组件的可覆盖资源参数

您可以在 CertManager CR 的 spec.controllerConfig,spec.webhookConfig, 和 spec.cainjectorConfig 部分中为 cert-manager 组件配置 CPU 和内存限值。

下表描述了 cert-manager 组件的可覆盖资源参数:

Expand
表 10.4. cert-manager 组件的可覆盖资源参数
字段描述

overrideResources.limits.cpu

定义组件 pod 可以使用的最大 CPU 量。

overrideResources.limits.memory

定义组件 pod 可以使用的最大内存量。

overrideResources.requests.cpu

定义调度程序为组件 pod 请求的最小 CPU 量。

overrideResources.requests.memory

定义调度程序为组件 pod 请求的最小内存量。

10.5.1.5. cert-manager 组件的可覆盖调度参数

您可以在 CertManager CR 的 spec.controllerConfigspec.webhookConfig 字段和 spec.cainjectorConfig 部分中为 cert-manager 组件配置 pod 调度约束。

下表描述了 cert-manager 组件的 pod 调度参数:

Expand
表 10.5. cert-manager 组件的可覆盖调度参数
字段描述

overrideScheduling.nodeSelector

键值对,将 pod 限制到特定的节点。

overrideScheduling.tolerations

在污点节点上调度 pod 的容限列表。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部