9.4. 为 Red Hat OpenShift 配置 cert-manager Operator 的出口代理


如果在 OpenShift Container Platform 中配置了集群范围的出口代理,Operator Lifecycle Manager (OLM) 会自动配置使用集群范围代理管理的 Operator。OLM 使用 HTTP_PROXYHTTPS_PROXYNO_PROXY 环境变量自动更新所有 Operator 的部署。

您可以将代理 HTTPS 连接所需的 CA 证书注入 Red Hat OpenShift 的 cert-manager Operator 中。

9.4.1. 为 Red Hat OpenShift 为 cert-manager Operator 注入自定义 CA 证书

如果 OpenShift Container Platform 集群启用了集群范围代理,您可以将代理 HTTPS 连接所需的 CA 证书注入 Red Hat OpenShift 的 cert-manager Operator 所需的 CA 证书。

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。
  • 您已为 OpenShift Container Platform 启用集群范围代理。

流程

  1. 运行以下命令,在 cert-manager 命名空间中创建配置映射:

    $ oc create configmap trusted-ca -n cert-manager
  2. 运行以下命令,将 OpenShift Container Platform 信任的 CA 捆绑包注入配置映射中:

    $ oc label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true -n cert-manager
  3. 运行以下命令,为 Red Hat OpenShift 更新 cert-manager Operator 的部署以使用配置映射:

    $ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}]}}}'

验证

  1. 运行以下命令验证部署是否已推出:

    $ oc rollout status deployment/cert-manager-operator-controller-manager -n cert-manager-operator && \
    oc rollout status deployment/cert-manager -n cert-manager && \
    oc rollout status deployment/cert-manager-webhook -n cert-manager && \
    oc rollout status deployment/cert-manager-cainjector -n cert-manager

    输出示例

    deployment "cert-manager-operator-controller-manager" successfully rolled out
    deployment "cert-manager" successfully rolled out
    deployment "cert-manager-webhook" successfully rolled out
    deployment "cert-manager-cainjector" successfully rolled out

  2. 运行以下命令,验证 CA 捆绑包是否已挂载为卷:

    $ oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.'containers[0].volumeMounts'}

    输出示例

    [{"mountPath":"/etc/pki/tls/certs/cert-manager-tls-ca-bundle.crt","name":"trusted-ca","subPath":"ca-bundle.crt"}]

  3. 运行以下命令,验证 CA 捆绑包的来源是否为 trusted-ca 配置映射:

    $ oc get deployment cert-manager -n cert-manager -o=jsonpath={.spec.template.spec.volumes}

    输出示例

    [{"configMap":{"defaultMode":420,"name":"trusted-ca"},"name":"trusted-ca"}]

9.4.2. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.