第 6 章 配置自定义 PKI
有些平台组件,如 Web 控制台,使用 Routes 进行通信,且必须信任其他组件的证书与其交互。如果您使用的是自定义公钥基础架构 (PKI) ,您必须将其配置为在集群中识别其私有签名的 CA 证书。
您可以使用 Proxy API 添加集群范围的可信 CA 证书。您必须在安装过程中或运行时执行此操作。
- 在 安装过程 中,配置集群范围的代理。您需要在 - install-config.yaml文件中的- additionalTrustBundle设置中定义私有签名的 CA 证书。- 安装程序生成名为 - user-ca-bundle的 ConfigMap,其中包含您定义的附加 CA 证书。然后,Cluster Network Operator 会创建- trusted-ca-bundleConfigMap,将这些内容与 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包合并,Proxy 对象的- trustedCA字段中也会引用此 ConfigMap。
- 
					在运行时,,修改默认 Proxy 对象使其包含您私有签名的 CA 证书 (集群代理启用工作流程的一部分)。这涉及创建包含集群应信任的私有签名 CA 证书的 ConfigMap,然后使用 trustedCA引用私有签名证书的 ConfigMap 修改代理服务器资源。
				安装程序配置的 additionalTrustBundle 字段和 proxy 资源的 trustedCA 字段被用来管理集群范围信任捆绑包; 在安装时会使用 additionalTrustBundle ,并在运行时使用代理的trustedCA。
			
				trustedCA 字段是对包含集群组件使用的自定义证书和密钥对的 ConfigMap 的引用。
			
6.1. 在安装过程中配置集群范围的代理
				生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。
			
先决条件
- 
						您有一个现有的 install-config.yaml文件。
- 您检查了集群需要访问的站点,并确定它们中的任何站点是否需要绕过代理。默认情况下,所有集群出口流量都经过代理,包括对托管云供应商 API 的调用。如果需要,您将在 - Proxy 对象的- spec.noProxy字段中添加站点来绕过代理。注意- Proxy对象- status.noProxy字段使用安装配置中的- networking.machineNetwork[].cidr、- networking.clusterNetwork[].cidr和- networking.serviceNetwork[]字段的值填充。- 对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装, - Proxy对象- status.noProxy字段也会使用实例元数据端点填充(- 169.254.169.254)。
流程
- 编辑 - install-config.yaml文件并添加代理设置。例如:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是http。
- 2
- 用于创建集群外 HTTPS 连接的代理 URL。
- 3
- 要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加上.以仅匹配子域。例如,.y.com匹配x.y.com,但不匹配y.com。使用*绕过所有目的地的代理。
- 4
- 如果提供,安装程序会在openshift-config命名空间中生成名为user-ca-bundle的配置映射,其包含代理 HTTPS 连接所需的一个或多个额外 CA 证书。然后,Cluster Network Operator 会创建trusted-ca-bundle配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS(RHCOS)信任捆绑包合并,Proxy对象的trustedCA字段中也会引用此配置映射。additionalTrustBundle字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
- 5
- 可选:决定Proxy对象的配置以引用trustedCA字段中user-ca-bundle配置映射的策略。允许的值是Proxyonly和Always。仅在配置了http/https代理时,使用Proxyonly引用user-ca-bundle配置映射。使用Always始终引用user-ca-bundle配置映射。默认值为Proxyonly。
 注意- 安装程序不支持代理的 - readinessEndpoints字段。注意- 如果安装程序超时,重启并使用安装程序的 - wait-for命令完成部署。例如:- ./openshift-install wait-for install-complete --log-level debug - $ ./openshift-install wait-for install-complete --log-level debug- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 保存该文件并在安装 OpenShift Container Platform 时引用。
				安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用 提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec。
			
					只支持名为 cluster 的 Proxy 对象,且无法创建额外的代理。