Menu Close

第 20 章 配置自定义 PKI

有些平台组件,如 Web 控制台,使用 Routes 进行通信,且必须信任其他组件的证书与其交互。如果您使用的是自定义公钥基础架构 (PKI) ,您必须将其配置为在集群中识别其私有签名的 CA 证书。

您可以使用 Proxy API 添加集群范围的可信 CA 证书。您必须在安装过程中或运行时执行此操作。

  • 安装过程 中,配置集群范围的代理。您需要在 install-config.yaml 文件中的 additionalTrustBundle 设置中定义私有签名的 CA 证书。

    安装程序生成名为 user-ca-bundle 的 ConfigMap,其中包含您定义的附加 CA 证书。然后,Cluster Network Operator 会创建 trusted-ca-bundle ConfigMap,将这些内容与 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包合并,Proxy 对象的 trustedCA 字段中也会引用此 ConfigMap。

  • 运行时,修改默认 Proxy 对象使其包含您私有签名的 CA 证书 (集群代理启用工作流程的一部分)。这涉及创建包含集群应信任的私有签名 CA 证书的 ConfigMap,然后使用 trustedCA 引用私有签名证书的 ConfigMap 修改代理服务器资源。
注意

安装程序配置的 additionalTrustBundle 字段和 proxy 资源的 trustedCA 字段被用来管理集群范围信任捆绑包; 在安装时会使用 additionalTrustBundle ,并在运行时使用代理的trustedCA

trustedCA 字段是对包含集群组件使用的自定义证书和密钥对的 ConfigMap 的引用。

20.1. 在安装过程中配置集群范围代理

生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。

先决条件

  • 您有一个现有的 install-config.yaml 文件。
  • 您检查了集群需要访问的站点,并决定是否需要绕过代理。默认情况下代理所有集群出口流量,包括对托管云供应商 API 的调用。您需要将站点添加到 Proxy 对象的 spec.noProxy 字段来绕过代理。

    注意

    Proxy 对象 status.noProxy 字段使用安装配置中的 networking.machineNetwork[].cidrnetworking.clusterNetwork[].cidrnetworking.serviceNetwork[] 字段的值填充。

    对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装, Proxy 对象 status.noProxy 字段也会使用实例元数据端点填充(169.254.169.254)。

流程

  1. 编辑 install-config.yaml 文件并添加代理设置。例如:

    apiVersion: v1
    baseDomain: my.domain.com
    proxy:
      httpProxy: http://<username>:<pswd>@<ip>:<port> 1
      httpsProxy: https://<username>:<pswd>@<ip>:<port> 2
      noProxy: example.com 3
    additionalTrustBundle: | 4
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    ...
    1
    用于创建集群外 HTTP 连接的代理 URL。URL 必须是 http
    2
    用于创建集群外 HTTPS 连接的代理 URL。
    3
    要排除在代理中的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加 . 来仅匹配子域。例如: .y.com 匹配 x.y.com,但不匹配 y.com。使用 * 绕过所有目的地的代理。
    4
    如果提供,安装程序会在 openshift-config 命名空间中生成名为 user-ca- bundle 的配置映射来保存额外的 CA 证书。如果您提供 additionalTrustBundle 和至少一个代理设置,则 Proxy 对象会被配置为引用 trustedCA 字段中的 user-ca-bundle 配置映射。然后,Cluster Network Operator 会创建一个 trusted-ca-bundle 配置映射,该配置映射将为 trustedCA 参数指定的内容与 RHCOS 信任捆绑包合并。additionalTrustBundle 字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
    注意

    安装程序不支持代理的 readinessEndpoints 字段。

  2. 保存该文件,并在安装 OpenShift Container Platform 时引用。

安装程序会创建一个名为 cluster 的集群范围代理,该代理使用提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec

注意

只支持名为 clusterProxy 对象,且无法创建额外的代理。