4.8. 카탈로그 소스 Pod 예약

OLM(Operator Lifecycle Manager) 소스 유형 grpc 에서 spec.image 를 정의하는 경우 Catalog Operator는 정의된 이미지 콘텐츠를 제공하는 Pod를 생성합니다. 기본적으로 이 Pod는 사양에 다음을 정의합니다.

  • kubernetes.io/os=linux 노드 선택기만 있습니다.
  • 기본 우선순위 클래스 이름: system-cluster-critical.
  • 허용 오차가 없습니다.

관리자는 CatalogSource 오브젝트의 선택적 spec.grpcPodConfig 섹션의 필드를 수정하여 이러한 값을 덮어쓸 수 있습니다.

중요

Marketplace Operator인 openshift-marketplace 는 기본 OperatorHub CR(사용자 정의 리소스)을 관리합니다. 이 CR은 CatalogSource 오브젝트를 관리합니다. CatalogSource 오브젝트의 spec.grpcPodConfig 섹션에서 필드를 수정하려고 하면 Marketplace Operator가 이러한 수정 사항을 자동으로 되돌립니다. 기본적으로 CatalogSource 오브젝트의 spec.grpcPodConfig 섹션에서 필드를 수정하면 Marketplace Operator가 이러한 변경 사항을 자동으로 되돌립니다.

CatalogSource 오브젝트에 영구 변경 사항을 적용하려면 먼저 기본 CatalogSource 오브젝트를 비활성화해야 합니다.

4.8.1. 로컬 수준에서 기본 CatalogSource 오브젝트 비활성화

기본 CatalogSource 오브젝트를 비활성화하여 로컬 수준에서 catalog source Pod와 같은 CatalogSource 오브젝트에 영구 변경 사항을 적용할 수 있습니다. 기본 CatalogSource 오브젝트 구성이 조직의 요구 사항을 충족하지 않는 경우 기본 구성을 고려하십시오. 기본적으로 CatalogSource 오브젝트의 spec.grpcPodConfig 섹션에서 필드를 수정하면 Marketplace Operator에서 이러한 변경 사항을 자동으로 되돌립니다.

Marketplace Operator인 openshift-marketplaceOperatorHub 의 기본 CR(사용자 정의 리소스)을 관리합니다. OperatorHubCatalogSource 오브젝트를 관리합니다.

CatalogSource 오브젝트에 영구 변경 사항을 적용하려면 먼저 기본 CatalogSource 오브젝트를 비활성화해야 합니다.

프로세스

  • 로컬 수준에서 기본 CatalogSource 오브젝트를 모두 비활성화하려면 다음 명령을 입력합니다.

    $ oc patch operatorhub cluster -p '{"spec": {"disableAllDefaultSources": true}}' --type=merge
    참고

    모든 CatalogSource 오브젝트를 비활성화하거나 특정 오브젝트를 비활성화하도록 기본 OperatorHub CR을 구성할 수도 있습니다.

4.8.2. 카탈로그 소스 Pod의 노드 선택기 덮어쓰기

사전 요구 사항

  • spec.image 가 있는 소스 유형 grpcCatalogSource 오브젝트가 정의됩니다.
  • dedicated-admin 역할의 사용자로 클러스터에 액세스할 수 있습니다.

프로세스

  • CatalogSource 오브젝트를 편집하고 다음을 포함하도록 spec.grpcPodConfig 섹션을 추가하거나 수정합니다.

      grpcPodConfig:
        nodeSelector:
          custom_label: <label>

    여기서 <label >은 카탈로그 소스 Pod가 스케줄링에 사용할 노드 선택기의 레이블입니다.

4.8.3. 카탈로그 소스 Pod의 우선순위 클래스 이름 덮어쓰기

사전 요구 사항

  • spec.image 가 있는 소스 유형 grpcCatalogSource 오브젝트가 정의됩니다.
  • dedicated-admin 역할의 사용자로 클러스터에 액세스할 수 있습니다.

프로세스

  • CatalogSource 오브젝트를 편집하고 다음을 포함하도록 spec.grpcPodConfig 섹션을 추가하거나 수정합니다.

      grpcPodConfig:
        priorityClassName: <priority_class>

    여기서 <priority_class >는 다음 중 하나입니다.

    • Kubernetes에서 제공하는 기본 우선 순위 클래스 중 하나: system-cluster-critical 또는 system-node-critical
    • 기본 우선 순위를 할당할 빈 세트("")
    • 기존 및 사용자 정의 우선순위 클래스
참고

이전에는 재정의할 수 있는 유일한 Pod 예약 매개변수가 priorityClassName 이었습니다. 이 작업은 operatorframework.io/priorityclass 주석을 CatalogSource 오브젝트에 추가하여 수행되었습니다. 예를 들면 다음과 같습니다.

apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: example-catalog
  namespace: openshift-marketplace
  annotations:
    operatorframework.io/priorityclass: system-cluster-critical

CatalogSource 오브젝트에서 주석과 spec.grpcPodConfig.priorityClassName 을 모두 정의하는 경우 주석이 구성 매개변수보다 우선합니다.

추가 리소스

4.8.4. 카탈로그 소스 Pod에 대한 허용 오차 덮어쓰기

사전 요구 사항

  • spec.image 가 있는 소스 유형 grpcCatalogSource 오브젝트가 정의됩니다.
  • dedicated-admin 역할의 사용자로 클러스터에 액세스할 수 있습니다.

프로세스

  • CatalogSource 오브젝트를 편집하고 다음을 포함하도록 spec.grpcPodConfig 섹션을 추가하거나 수정합니다.

      grpcPodConfig:
        tolerations:
          - key: "<key_name>"
            operator: "<operator_type>"
            value: "<value>"
            effect: "<effect>"