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。
10.5.1.1. cert-manager 组件的 CertManager CR 中的常见可配置字段 复制链接链接已复制到粘贴板!
下表列出了您可以在 CertManager CR 的 spec.controllerConfig、spec.webhookConfig 和 spec.cainjectorConfig 部分中配置的常用字段。
| 字段 | 类型 | 描述 |
|---|---|---|
|
|
| 您可以覆盖 cert-manager 组件支持的参数。 |
|
|
| 您可以覆盖 cert-manager 控制器支持的环境变量。此字段只支持 cert-manager 控制器组件。 |
|
|
|
您可以为 cert-manager 组件配置副本。默认值为
如需更多信息,请参阅高可用性。 |
|
|
| 您可以为 cert-manager 组件配置 CPU 和内存限值。 |
|
|
| 您可以为 cert-manager 组件配置 pod 调度限制。 |
10.5.1.2. cert-manager 组件的覆盖参数 复制链接链接已复制到粘贴板!
您可以在 CertManager CR 的 spec.controllerConfig,spec.webhookConfig, 和 spec.cainjectorConfig 部分中为 cert-manager 组件配置覆盖参数。
下表描述了 cert-manager 组件的覆盖参数:
| 参数 | 组件 | 描述 |
|---|---|---|
|
| Controller |
提供以逗号分隔的名称服务器列表,以查询 DNS-01 自我检查。命名空间的指定形式可以是 注意 仅从 cert-manager Operator for Red Hat OpenShift version 1.13.0 或更高版本开始才支持 DNS over HTTPS (DoH)。 |
|
| Controller | 指定只使用递归名称服务器,而不是检查与该域关联的权威名称服务器。 |
|
| Controller |
提供以逗号分隔的 |
|
| Controller |
指定指标端点的主机和端口。默认值为 |
|
| Controller | 您可以使用此参数配置 ACME Issuer,以使用 ambient 凭证来解决 DNS-01 质询。 |
|
| Controller | 此参数将证书资源设置为存储 TLS 证书的 secret 的所有者。如需更多信息,请参阅"删除证书时自动删除 TLS secret"。 |
|
| Controller |
定义 ACME HTTP-01 solver pod 的最大 CPU 限制。默认值为 |
|
| Controller |
定义 ACME HTTP-01 solver pod 的最大内存限值。默认值为 |
|
| Controller |
定义 ACME HTTP-01 solver pod 的最小 CPU 请求。默认值为 |
|
| Controller |
定义 ACME HTTP-01 solver pod 的最小内存请求。默认值为 |
|
| Controller |
指定证书请求的最小 backoff 持续时间。默认值为 |
|
| Controller, Webhook, CA injector | 指定日志级别详细程度,以确定日志消息的详细程度。 |
10.5.1.3. cert-manager 控制器的可覆盖环境变量 复制链接链接已复制到粘贴板!
您可以在 CertManager CR 的 spec.controllerConfig.overrideEnv 字段中为 cert-manager 控制器配置可覆盖环境变量。
下表描述了 cert-manager 控制器的超量环境变量:
| 环境变量 | 描述 |
|---|---|
|
| 用于传出 HTTP 请求的代理服务器。 |
|
| 用于传出 HTTPS 请求的代理服务器。 |
|
| 绕过代理的主机列表(以逗号分隔)。 |
10.5.1.4. cert-manager 组件的可覆盖资源参数 复制链接链接已复制到粘贴板!
您可以在 CertManager CR 的 spec.controllerConfig,spec.webhookConfig, 和 spec.cainjectorConfig 部分中为 cert-manager 组件配置 CPU 和内存限值。
下表描述了 cert-manager 组件的可覆盖资源参数:
| 字段 | 描述 |
|---|---|
|
| 定义组件 pod 可以使用的最大 CPU 量。 |
|
| 定义组件 pod 可以使用的最大内存量。 |
|
| 定义调度程序为组件 pod 请求的最小 CPU 量。 |
|
| 定义调度程序为组件 pod 请求的最小内存量。 |
10.5.1.5. cert-manager 组件的可覆盖调度参数 复制链接链接已复制到粘贴板!
您可以在 CertManager CR 的 spec.controllerConfig、spec.webhookConfig 字段和 spec.cainjectorConfig 部分中为 cert-manager 组件配置 pod 调度约束。
下表描述了 cert-manager 组件的 pod 调度参数:
| 字段 | 描述 |
|---|---|
|
| 键值对,将 pod 限制到特定的节点。 |
|
| 在污点节点上调度 pod 的容限列表。 |