32.2. 启用集群范围代理
Proxy
对象用于管理集群范围出口代理。当在没有配置代理的情况下安装或升级集群时,仍会生成 Proxy
对象,但它有一个空的 spec
。例如:
只支持名为 cluster
的 Proxy
对象,且无法创建额外的代理。
集群管理员可以通过修改这个 cluster
Proxy
对象来配置 OpenShift Container Platform 的代理。
在为集群启用集群范围代理功能并保存 Proxy
对象文件后,Machine Config Operator (MCO) 会重启集群中的所有节点,以便每个节点可以访问集群外的连接。您不需要手动重新引导这些节点。
先决条件
- 集群管理员权限
-
已安装 OpenShift Container Platform
oc
CLI 工具
流程
创建包含代理 HTTPS 连接所需的额外 CA 证书的 ConfigMap。
注意如果代理的身份证书由 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包的颁发机构签名,您可以跳过这一步。
创建名为
user-ca-bundle.yaml
的文件,并提供 PEM 编码证书的值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令从
user-ca-bundle.yaml
文件创建配置映射:oc create -f user-ca-bundle.yaml
$ oc create -f user-ca-bundle.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用
oc edit
命令修改Proxy
对象:oc edit proxy/cluster
$ oc edit proxy/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为代理配置所需的字段:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是
http
。 - 2
- 用于创建集群外 HTTPS 连接的代理 URL。URL 方案必须是
http
或https
。指定支持 URL 方案的代理的 URL。例如,如果大多数代理被配置为使用https
,则大多数代理都会报告错误,但它们只支持http
。此失败消息可能无法传播到日志,并可能显示为网络连接失败。如果使用侦听来自集群的https
连接的代理,您可能需要配置集群以接受代理使用的 CA 和证书。 - 3
- 要排除代理的目标域名、域、IP 地址(或其他网络 CIDR)和端口号的列表(以逗号分隔)。注意
只有在配置 IPv6 地址时,才支持端口号。配置 IPv4 地址时不支持端口号。
在域前面加
.
来仅匹配子域。例如:.y.com
匹配x.y.com
,但不匹配y.com
。使用*
可对所有目的地绕过所有代理。如果您的
noproxy
字段需要包含域地址,您必须在noproxy
字段中明确指定该 FQDN 或前缀匹配子域。您不能使用封装域的 IP 地址或 CIDR 范围。这是因为集群不会在分配路由连接前等待 DNS 返回 IP 地址,并根据请求明确检查。例如,如果您有一个 CIDR 块值,如10.0.0.0/24
,noproxy
字段和字段尝试访问https://10.0.0.11
,则地址可以成功匹配。但是,尝试访问https://exampleserver.externaldomain.com
(其 A 记录条目为10.0.0.11
)会失败。对于noproxy
字段,还需要额外的.externaldomain.com
值。如果您扩展了未包含在安装配置中
networking.machineNetwork[].cidr
字段定义的计算节点,您必须将它们添加到此列表中,以防止连接问题。如果未设置
httpProxy
或httpsProxy
字段,则此字段将被忽略。 - 4
- 将
httpProxy
和httpsProxy
值写进状态之前,执行就绪度检查时要使用的一个或多个集群外部 URL。 - 5
- 引用
openshift-config
命名空间中的 ConfigMap,其包含代理 HTTPS 连接所需的额外 CA 证书。注意 ConfigMap 必须已经存在,然后才能在这里引用它。此字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
- 保存文件以使改变生效。