Menu Close

3.4.2. 注入自定义 CA 证书

当集群管理员使用配置映射向集群添加自定义 CA 证书时,Cluster Network Operator 会将用户提供的证书和系统 CA 证书合并为一个捆绑包(bundle)。您可以将这个合并捆绑包注入 Operator Lifecycle Manager (OLM) 上运行的 Operator 中,如果您有一个中间人(man-in-the-middle)HTTPS 代理,这将会有用。

先决条件

  • 使用具有 cluster-admin 权限的账户访问 OpenShift Container Platform 集群。
  • 使用配置映射添加自定义 CA 证书至集群。
  • 在 OLM 上安装并运行所需的 Operator。

流程

  1. 在存在 Operator 订阅的命名空间中创建一个空配置映射,并包括以下标签:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: trusted-ca 1
      labels:
        config.openshift.io/inject-trusted-cabundle: "true" 2
    1
    配置映射的名称。
    2
    请求 Cluster Network Operator 注入合并的捆绑包。

    创建此配置映射后,它会立即使用合并捆绑包的证书内容填充。

  2. 更新您的 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
    指定标签以匹配 Operator 拥有的 pod。
    3
    创建一个 trusted-ca 卷。
    4
    ca-bundle.crt 需要作为配置映射键。
    5
    tls-ca-bundle.pem 需要作为配置映射路径。
    6
    创建一个 trusted-ca 卷挂载。