-
HTTP_PROXY
-
HTTPS_PROXY
-
NO_PROXY
如果在 OpenShift Container Platform 集群上配置了全局代理,则 Operator Lifecycle Manager (OLM) 会自动使用集群范围的代理配置其管理的运算符。但是,您也可以配置已安装的运算符以覆盖全局代理或注入自定义 CA 证书。
如果配置了集群范围的出站代理,则使用 Operator Lifecycle Manager (OLM) 运行的运算符会在其部署中继承集群范围的代理设置。集群管理员还可以通过配置运算符的订阅来覆盖这些代理设置。
运算符必须处理为任何托管操作数的 Pod 中的代理设置设置环境变量。 |
使用具有 `cluster-admin` 权限的帐户访问 OpenShift Container Platform 集群。
在 Web 控制台中导航到**运算符 → OperatorHub**页面。
选择运算符并单击**安装**。
在**安装运算符**页面上,修改 `Subscription` 对象以在 `spec` 部分中包含以下一个或多个环境变量
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
例如
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: etcd-config-test
namespace: openshift-operators
spec:
config:
env:
- name: HTTP_PROXY
value: test_http
- name: HTTPS_PROXY
value: test_https
- name: NO_PROXY
value: test
channel: clusterwide-alpha
installPlanApproval: Automatic
name: etcd
source: community-operators
sourceNamespace: openshift-marketplace
startingCSV: etcdoperator.v0.9.4-clusterwide
也可以使用空值取消设置这些环境变量,以删除任何先前设置的集群范围或自定义代理设置。 |
OLM 将这些环境变量作为一个单元处理;如果设置了至少一个环境变量,则认为所有三个环境变量都被覆盖,并且不会对已订阅运算符的部署使用集群范围的默认值。
单击**安装**以使运算符可用于选定的命名空间。
在运算符的 CSV 出现在相关命名空间后,您可以验证自定义代理环境变量是否已在部署中设置。例如,使用 CLI
$ oc get deployment -n openshift-operators \
etcd-operator -o yaml \
| grep -i "PROXY" -A 2
- name: HTTP_PROXY
value: test_http
- name: HTTPS_PROXY
value: test_https
- name: NO_PROXY
value: test
image: quay.io/coreos/etcd-operator@sha256:66a37fd61a06a43969854ee6d3e21088a98b93838e284a6086b13917f96b0d9c
...
当集群管理员使用配置映射将自定义 CA 证书添加到集群时,集群网络运算符会将用户提供的证书和系统 CA 证书合并到单个捆绑包中。您可以将此合并的捆绑包注入到在 Operator Lifecycle Manager (OLM) 上运行的运算符中,如果您有中间人 HTTPS 代理,这将非常有用。
使用具有 `cluster-admin` 权限的帐户访问 OpenShift Container Platform 集群。
使用配置映射添加到集群的自定义 CA 证书。
所需的操作符已安装并在 OLM 上运行。
在您的操作符订阅所在的命名空间中创建一个空的配置映射,并包含以下标签。
apiVersion: v1
kind: ConfigMap
metadata:
name: trusted-ca (1)
labels:
config.openshift.io/inject-trusted-cabundle: "true" (2)
1 | 配置映射的名称。 |
2 | 请求集群网络操作符注入合并的bundle。 |
创建此配置映射后,它将立即填充合并 bundle 的证书内容。
更新Subscription
对象,以包含一个spec.config
部分,该部分将trusted-ca
配置映射作为卷挂载到需要自定义 CA 的每个 Pod 中的每个容器。
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: my-operator
spec:
package: etcd
channel: alpha
config: (1)
selector:
matchLabels:
<labels_for_pods> (2)
volumes: (3)
- name: trusted-ca
configMap:
name: trusted-ca
items:
- key: ca-bundle.crt (4)
path: tls-ca-bundle.pem (5)
volumeMounts: (6)
- name: trusted-ca
mountPath: /etc/pki/ca-trust/extracted/pem
readOnly: true
1 | 如果不存在,请添加config 部分。 |
2 | 指定标签以匹配由操作符拥有的 Pod。 |
3 | 创建一个trusted-ca 卷。 |
4 | ca-bundle.crt 作为配置映射键是必需的。 |
5 | tls-ca-bundle.pem 作为配置映射路径是必需的。 |
6 | 创建一个trusted-ca 卷挂载。 |
操作符的部署可能会无法验证授权并显示 |