5.6.5. 제한된 네트워크 환경에 대한 Operator 활성화

사용 중인 Operator는 Operator 작성자로서 제한된 네트워크 또는 연결이 끊긴 환경에서 제대로 실행하려면 추가 요구 사항을 충족해야 합니다.

연결이 끊긴 모드를 지원하는 Operator 요구 사항

  • Operator의 CSV(클러스터 서비스 버전)에서 다음을 수행합니다.

    • Operator에서 기능을 수행하는 데 필요할 수 있는 관련 이미지 또는 기타 컨테이너 이미지를 나열합니다.
    • 태그가 아닌 다이제스트(SHA)를 통해 지정된 모든 이미지를 참조합니다.
  • Operator의 모든 종속 항목은 연결이 끊긴 모드에서 실행할 수 있어야 합니다.
  • Operator에 클러스터 외부 리소스가 필요하지 않아야 합니다.

CSV 요구 사항의 경우 Operator 작성자는 다음과 같은 변경을 수행할 수 있습니다.

사전 요구 사항

  • Operator 프로젝트에 CSV가 포함되어 있습니다.

프로세스

  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)로 Operator 컨테이너 이미지를 참조합니다.
      참고

      프로브를 구성할 때 timeoutSeconds 값은 periodSeconds 값보다 작아야 합니다. timeoutSeconds 기본값은 1입니다. periodSeconds의 기본값은 10입니다.

  2. 연결이 끊긴 환경에서도 Operator가 작동함을 나타내는 Disconnected 주석을 추가합니다.

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

    이 인프라 기능을 통해 OperatorHub에서 Operator를 필터링할 수 있습니다.