5.2. 注入自定义 CA 证书
当集群管理员使用 ConfigMap 向集群添加自定义 CA 证书时,Cluster Network Operator 会将用户提供的证书和系统 CA 证书合并为一个捆绑包(bundle)。您可以将这个合并捆绑包注入 Operator Lifecycle Manager (OLM) 上运行的 Operator 中,如果您有一个中间人(man-in-the-middle)HTTPS 代理,这将会有用。
先决条件
-
使用具有
cluster-admin
权限的账户访问 OpenShift Container Platform 集群。 - 使用 ConfigMap 添加自定义 CA 证书到集群。
- 在 OLM 上安装并运行所需的 Operator。
流程
在存在 Operator 订阅的命名空间中创建一个空 ConfigMap,并包含以下标签:
apiVersion: v1 kind: ConfigMap metadata: name: trusted-ca 1 labels: config.openshift.io/inject-trusted-cabundle: "true" 2
创建此 ConfigMap 后,ConfigMap 会立即被合并捆绑包的证书内容填充。
更新 Operator 的订阅对象,使其包含
spec.config
部分,该部分可将trusted-ca
ConfigMap 作为卷挂载到需要自定义 CA 的 Pod 中的各个容器: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