4.4. 在 Operator Lifecycle Manager 中配置代理支持
如果在 OpenShift Dedicated 集群中配置了全局代理,Operator Lifecycle Manager(OLM)会自动配置使用集群范围代理管理的 Operator。但是,您也可以配置已安装的 Operator 来覆盖全局代理服务器或注入自定义 CA 证书。
4.4.1. 覆盖 Operator 的代理设置 复制链接链接已复制到粘贴板!
如果配置了集群范围的出口代理,使用 Operator Lifecycle Manager(OLM)运行的 Operator 会继承其部署上的集群范围代理设置。具有 dedicated-admin
角色的管理员还可以通过配置 Operator 的订阅来覆盖这些代理设置。
操作员必须为任何受管 Operands 处理 pod 中的代理设置环境变量。
先决条件
-
使用具有
dedicated-admin
角色的用户访问 OpenShift Dedicated 集群。
流程
-
在 Web 控制台中导航至 Operators
OperatorHub 页面。 - 选择 Operator 并点 Install。
在 Install Operator 页面中,修改
Subscription
对象,使其在spec
部分中包含一个或多个以下环境变量:-
HTTP_PROXY
-
HTTPS_PROXY
-
NO_PROXY
例如:
带有代理设置的
Subscription
对象覆盖Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这些环境变量也可以使用空值取消设置,以删除所有之前设定的集群范围或自定义代理设置。
OLM 将这些环境变量作为一个单元处理; 如果至少设置了一个环境变量,则所有三个变量都将被视为覆盖,并且集群范围的默认值不会用于订阅的 Operator 部署。
-
- 点击 Install 使 Operator 可供所选命名空间使用。
当 Operator 的 CSV 出现在相关命名空间中后,您可以验证部署中是否设置了自定义代理环境变量。例如,使用 CLI:
oc get deployment -n openshift-operators \ etcd-operator -o yaml \ | grep -i "PROXY" -A 2
$ oc get deployment -n openshift-operators \ etcd-operator -o yaml \ | grep -i "PROXY" -A 2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2. 注入自定义 CA 证书 复制链接链接已复制到粘贴板!
当具有 dedicated-admin
角色的管理员使用配置映射在集群中添加自定义 CA 证书时,Cluster Network Operator 会将用户提供的证书和系统 CA 证书合并到单个捆绑包中。您可以将这个合并捆绑包注入 Operator Lifecycle Manager (OLM) 上运行的 Operator 中,如果您有一个中间人(man-in-the-middle)HTTPS 代理,这将会有用。
先决条件
-
使用具有
dedicated-admin
角色的用户访问 OpenShift Dedicated 集群。 - 使用配置映射添加自定义 CA 证书至集群。
- 在 OLM 上安装并运行所需的 Operator。
流程
在存在 Operator 订阅的命名空间中创建一个空配置映射,并包括以下标签:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建此配置映射后,它会立即使用合并捆绑包的证书内容填充。
更新您的
Subscription
对象,使其包含spec.config
部分,该部分可将trusted-ca
配置映射作为卷挂载到需要自定义 CA 的 pod 中的每个容器:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Operator 的部署可能无法验证颁发机构,并显示
x509 certificate signed by unknown authority
错误。即使在使用 Operator 订阅时注入自定义 CA,也会发生这个错误。在这种情况下,您可以使用 Operator 的订阅将mountPath
设置为 trusted-ca 的/etc/ssl/certs
。