4.11. カタログソース Pod のスケジューリング

ソースタイプ grpc の Operator Lifecycle Manager (OLM) カタログソースが spec.image を定義すると、Catalog Operator は、定義されたイメージコンテンツを提供する Pod を作成します。デフォルトでは、この Pod は、その仕様で以下を定義します。

  • kubernetes.io/os=linux ノードセレクターのみ
  • 優先度クラス名なし
  • Toleration なし

管理者は、CatalogSource オブジェクトのオプションの spec.grpcPodConfig セクションのフィールドを変更すると、これらの値をオーバーライドできます。

4.11.1. カタログソース Pod のノードセレクターのオーバーライド

前提条件

  • spec.image が定義されたソースタイプ grpcCatalogSource オブジェクト

手順

  • CatalogSource オブジェクトを編集し、spec.grpcPodConfig セクションを追加または変更して、以下を含めます。

      grpcPodConfig:
        nodeSelector:
          custom_label: <label>

    <label> は、カタログソース Pod がスケジュールに使用するノードセレクターのラベルです。

4.11.2. カタログソース Pod の優先度クラス名のオーバーライド

前提条件

  • spec.image が定義されたソースタイプ grpcCatalogSource オブジェクト

手順

  • CatalogSource オブジェクトを編集し、spec.grpcPodConfig セクションを追加または変更して、以下を含めます。

      grpcPodConfig:
        priorityClassName: <priority_class>

    <priority_class> は次のいずれかです。

    • Kubernetes によって提供されるデフォルトの優先度クラスの 1 つ: 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.11.3. カタログソース Pod の Toleration のオーバーライド

前提条件

  • spec.image が定義されたソースタイプ grpcCatalogSource オブジェクト

手順

  • CatalogSource オブジェクトを編集し、spec.grpcPodConfig セクションを追加または変更して、以下を含めます。

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