Menu Close

4.6.3. 为受限网络环境启用 Operator

作为 Operator 作者,您的 Operator 必须满足额外要求才能在受限网络或断开连接的环境中正常运行。

支持断开连接模式的 Operator 的要求

  • 在 Operator 的集群服务版本(CSV)中:

    • 列出 Operator 执行其功能可能需要的任何 相关镜像或其他容器镜像。
    • 通过摘要 (SHA) 而不是标签来引用所有指定的镜像。
  • Operator 的所有依赖项还必须支持以断开连接的模式运行。
  • 您的 Operator 不得要求任何非集群资源。

对于 CSV 要求,您可以以 Operator 作者的身份进行以下更改。

先决条件

  • 包含 CSV 的 Operator 项目

流程

  1. 为 Operator 在 CSV 的两个位置中使用 SHA 引用相关镜像:

    1. 更新 spec.relatedImages:

      ...
      spec:
        relatedImages: 1
          - name: etcd-operator 2
            image: quay.io/etcd-operator/operator@sha256:d134a9865524c29fcf75bbc4469013bc38d8a15cb5f41acfddb6b9e492f556e4 3
          - name: etcd-image
            image: quay.io/etcd-operator/etcd@sha256:13348c15263bd8838ec1d5fc4550ede9860fcbb0f843e48cbccec07810eebb68
      ...
      1
      创建 relatedImages 部分并设置相关镜像列表。
      2
      指定镜像的唯一标识符。
      3
      通过摘要 (SHA) 而不是通过镜像标签指定每个镜像。
    2. 当声明环境变量以注入 Operator 应使用的镜像时,更新部署的 env 部分:

      spec:
        install:
          spec:
            deployments:
            - name: etcd-operator-v3.1.1
              spec:
                replicas: 1
                selector:
                  matchLabels:
                    name: etcd-operator
                strategy:
                  type: Recreate
                template:
                  metadata:
                    labels:
                      name: etcd-operator
                  spec:
                    containers:
                    - args:
                      - /opt/etcd/bin/etcd_operator_run.sh
                      env:
                      - name: WATCH_NAMESPACE
                        valueFrom:
                          fieldRef:
                            fieldPath: metadata.annotations['olm.targetNamespaces']
                      - name: ETCD_OPERATOR_DEFAULT_ETCD_IMAGE 1
                        value: quay.io/etcd-operator/etcd@sha256:13348c15263bd8838ec1d5fc4550ede9860fcbb0f843e48cbccec07810eebb68 2
                      - name: ETCD_LOG_LEVEL
                        value: INFO
                      image: quay.io/etcd-operator/operator@sha256:d134a9865524c29fcf75bbc4469013bc38d8a15cb5f41acfddb6b9e492f556e4 3
                      imagePullPolicy: IfNotPresent
                      livenessProbe:
                        httpGet:
                          path: /healthy
                          port: 8080
                        initialDelaySeconds: 10
                        periodSeconds: 30
                      name: etcd-operator
                      readinessProbe:
                        httpGet:
                          path: /ready
                          port: 8080
                        initialDelaySeconds: 10
                        periodSeconds: 30
                      resources: {}
                    serviceAccountName: etcd-operator
          strategy: deployment
      1
      使用环境变量注入 Operator 引用的镜像。
      2
      通过摘要 (SHA) 而不是通过镜像标签指定每个镜像。
      3
      另外,使用摘要(SHA)而不是镜像标签(tag)引用 Operator 容器镜像。
      注意

      配置探测时,timeoutSeconds 值必须小于 periodSeconds 值。timeoutSeconds 默认值为 1periodSeconds 默认值为 10

  2. 添加 disconnected 注解,这表示 Operator 在断开连接的环境中工作:

    metadata:
      annotations:
        operators.openshift.io/infrastructure-features: '["disconnected"]'

    OperatorHub 中可根据此基础架构功能来过滤 Operator。