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 集群。

流程

  1. 在 Web 控制台中导航至 Operators OperatorHub 页面。
  2. 选择 Operator 并点 Install
  3. Install Operator 页面中,修改 Subscription 对象,使其在 spec 部分中包含一个或多个以下环境变量:

    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY

    例如:

    带有代理设置的Subscription 对象覆盖

    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 将这些环境变量作为一个单元处理; 如果至少设置了一个环境变量,则所有三个变量都将被视为覆盖,并且集群范围的默认值不会用于订阅的 Operator 部署。

  4. 点击 Install 使 Operator 可供所选命名空间使用。
  5. 当 Operator 的 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
    ...

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。

流程

  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 卷挂载。
    注意

    Operator 的部署可能无法验证颁发机构,并显示 x509 certificate signed by unknown authority 错误。即使在使用 Operator 订阅时注入自定义 CA,也会发生这个错误。在这种情况下,您可以使用 Operator 的订阅将 mountPath 设置为 trusted-ca 的 /etc/ssl/certs

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.