4.12. Platform Operator の管理 (テクノロジープレビュー)

Platform Operator は OLM ベースの Operator であり、OpenShift Container Platform クラスターの Day 0 操作中または操作後にインストールでき、クラスターのライフサイクルに参加します。クラスター管理者は、PlatformOperator API を使用して Platform Operator を管理できます。

重要

Platform Operator タイプはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

4.12.1. Platform Operator について

Operator Lifecycle Manager (OLM) は、Platform Operator と呼ばれる新しいタイプの Operator を導入します。Platform Operator は OLM ベースの Operator であり、OpenShift Container Platform クラスターの Day 0 操作中または操作後にインストールでき、クラスターのライフサイクルに参加します。クラスター管理者は、Platform Operator を使用して OpenShift Container Platform インストールをさらにカスタマイズし、要件とユースケースを満たすことができます。

クラスター管理者は、OpenShift Container Platform の既存のクラスター機能機能を使用して、クラスターのインストール前に、初期ペイロードに必須ではないと見なされる Cluster Version Operator ベース (CVO) コンポーネントのサブセットを無効にすることができます。Platform Operator は、追加のカスタマイズオプションを提供することで、このモデルを反復します。RukPak コンポーネントからのリソースに依存する Platform Operator メカニズムを通じて、OLM ベースの Operator をクラスターのインストール時にインストールできるようになり、Operator が正常にインストールに失敗した場合はクラスターのロールアウトをブロックできます。

OpenShift Container Platform 4.12 では、このテクノロジープレビューリリースは基本的な Platform Operator メカニズムに焦点を当て、今後のリリースで概念を拡張するための基盤を構築します。クラスター全体の PlatformOperator API を使用して、TechPreviewNoUpgrades 機能セットが有効になっているクラスターでクラスターを作成する前または後に Operator を設定できます。

4.12.1.1. Platform Operator のテクノロジープレビューの制限事項

OpenShift Container Platform 4.12 の Platform Operator 機能のテクノロジープレビューリリース中、以下の制限により、Platform Operator メカニズムを介して Operator をインストールできるかどうかが決まります。

  • Kubernetes マニフェストは、Operator Lifecycle Manager (OLM) registry+v1 バンドル形式を使用してパッケージ化する必要があります。
  • Operator は、パッケージまたはグループ/バージョン/種類 (GVK) の依存関係を宣言できません。
  • Operator は、AllNamespaces 以外のクラスターサービスバージョン (CSV) インストールモードを指定できません。
  • Operator は Webhook および APIService 定義を指定できません。
  • すべてのパッケージバンドルは、redhat-operators カタログソースに含まれている必要があります。

これらの制限を考慮した後、次の Operator を正常にインストールできます。

表4.2 Platform Operator としてインストール可能な OLM ベースの Operator

3scale-operator

amq-broker-rhel8

amq-online

amq-streams

ansible-cloud-addons-operator

apicast-operator

container-security-operator

eap

file-integrity-operator

gatekeeper-operator-product

integration-operator

jws-operator

kiali-ossm

node-healthcheck-operator

odf-csi-addons-operator

odr-hub-operator

openshift-custom-metrics-autoscaler-operator

openshift-gitops-operator

openshift-pipelines-operator-rh

quay-operator

red-hat-camel-k

rhpam-kogito-operator

service-registry-operator

servicemeshoperator

skupper-operator

 
注記

次の機能は、このテクノロジープレビューリリースでは利用できません。

  • クラスターのロールアウト後に Platform Operator パッケージを自動的にアップグレードする
  • オプションの CVO ベースのコンポーネントをサポートするように Platform Operator メカニズムを拡張する

4.12.2. 前提条件

  • cluster-admin 権限を持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。
  • クラスターで有効になっている TechPreviewNoUpgrades 機能セット。

    警告

    TechPreviewNoUpgrade 機能セットを有効にすると元に戻すことができなくなり、マイナーバージョンの更新ができなくなります。これらの機能セットは、実稼働クラスターでは推奨されません。

  • クラスターで有効になっている redhat-operators カタログソースのみ。これは、テクノロジープレビューリリース中の制限です。
  • ワークステーションにインストールされた oc コマンド。

4.12.3. クラスター作成時の Platform Operator のインストール

クラスター管理者は、クラスターの作成中に FeatureGate および PlatformOperator マニフェストを提供することにより、Platform Operator をインストールできます。

手順

  1. サポートされている OLM ベースの Operator のセットから Platform Operator を選択します。このセットのリストと現在の制限の詳細は、"Platform Operator のテクノロジープレビューの制限" を参照してください。
  2. クラスターのインストール方法を選択し、指示に従って install-config.yaml ファイルを作成します。クラスターインストールの準備の詳細は、「クラスターインストール方法の選択とユーザー用の準備」を参照してください。
  3. install-config.yaml ファイルを作成して変更を完了したら、インストールプログラムを含むディレクトリーに移動し、マニフェストを作成します。

    $ ./openshift-install create manifests --dir <installation_directory> 1
    1
    <installation_directory> については、クラスターの install-config.yaml ファイルが含まれるディレクトリーの名前を指定します。
  4. <installation_directory>/manifests/ ディレクトリーに、TechPreviewNoUpgrade 機能セットを有効にする FeatureGate オブジェクト YAML ファイル (feature-gate.yaml ファイルなど) を作成します。

    feature-gate.yaml ファイルの例

    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      annotations:
        include.release.openshift.io/self-managed-high-availability: "true"
        include.release.openshift.io/single-node-developer: "true"
        release.openshift.io/create-only: "true"
      name: cluster
    spec:
      featureSet: TechPreviewNoUpgrade 1

    1
    TechPreviewNoUpgrade 機能セットを有効にします。
  5. 選択した Platform Operator の PlatformOperator オブジェクト YAML ファイルを <installation_directory>/manifests/ ディレクトリーに作成します。たとえば、Red Hat OpenShift Service Mesh Operator の service-mesh-po.yaml ファイルです。

    service-mesh-po.yaml ファイルの例

    apiVersion: platform.openshift.io/v1alpha1
    kind: PlatformOperator
    metadata:
      name: service-mesh-po
    spec:
      package:
        name: servicemeshoperator

  6. クラスターのインストールを完了する準備ができたら、選択したインストール方法を参照し、openshift-install create cluster コマンドの実行を続行します。

    クラスターの作成中に、提供されたマニフェストを使用して TechPreviewNoUpgrade 機能セットを有効にし、選択した Platform Operator をインストールします。

    重要

    Platform Operator が正常にインストールされないと、クラスターのインストールプロセスがブロックされます。

検証

  1. 次のコマンドを実行して、service-mesh-po Platform Operator のステータスを確認します。

    $ oc get platformoperator service-mesh-po -o yaml

    出力例

    ...
    status:
      activeBundleDeployment:
        name: service-mesh-po
      conditions:
      - lastTransitionTime: "2022-10-24T17:24:40Z"
        message: Successfully applied the service-mesh-po BundleDeployment resource
        reason: InstallSuccessful
        status: "True" 1
        type: Installed

    1
    Installed ステータス条件が True を報告するまで待ちます。
  2. platform-operators-aggregated クラスター Operator が Available=True ステータスを報告していることを確認します。

    $ oc get clusteroperator platform-operators-aggregated -o yaml

    出力例

    ...
    status:
      conditions:
      - lastTransitionTime: "2022-10-24T17:43:26Z"
        message: All platform operators are in a successful state
        reason: AsExpected
        status: "False"
        type: Progressing
      - lastTransitionTime: "2022-10-24T17:43:26Z"
        status: "False"
        type: Degraded
      - lastTransitionTime: "2022-10-24T17:43:26Z"
        message: All platform operators are in a successful state
        reason: AsExpected
        status: "True"
        type: Available

4.12.4. クラスター作成後の Platform Operator のインストール

クラスター管理者は、クラスター全体の PlatformOperator API を使用して TechPreviewNoUpgrades 機能セットを有効にしたクラスターにクラスターを作成した後、Platform Operator をインストールできます。

手順

  1. サポートされている OLM ベースの Operator のセットから Platform Operator を選択します。このセットのリストと現在の制限の詳細は、"Platform Operator のテクノロジープレビューの制限" を参照してください。
  2. 選択した Platform Operator の PlatformOperator オブジェクト YAML ファイルを作成します。たとえば、Red Hat OpenShift Service Mesh Operator の service-mesh-po.yaml ファイルです。

    sevice-mesh-po.yaml ファイルの例

    apiVersion: platform.openshift.io/v1alpha1
    kind: PlatformOperator
    metadata:
      name: service-mesh-po
    spec:
      package:
        name: servicemeshoperator

  3. 次のコマンドを実行して、PlatformOperator オブジェクトを作成します。

    $ oc apply -f service-mesh-po.yaml
    注記

    クラスターで TechPreviewNoUpgrades 機能セットが有効になっていない場合、オブジェクトの作成は次のメッセージで失敗します。

    error: resource mapping not found for name: "service-mesh-po" namespace: "" from "service-mesh-po.yaml": no matches for kind "PlatformOperator" in version "platform.openshift.io/v1alpha1"
    ensure CRDs are installed first

検証

  1. 次のコマンドを実行して、service-mesh-po Platform Operator のステータスを確認します。

    $ oc get platformoperator service-mesh-po -o yaml

    出力例

    ...
    status:
      activeBundleDeployment:
        name: service-mesh-po
      conditions:
      - lastTransitionTime: "2022-10-24T17:24:40Z"
        message: Successfully applied the service-mesh-po BundleDeployment resource
        reason: InstallSuccessful
        status: "True" 1
        type: Installed

    1
    Installed ステータス条件が True を報告するまで待ちます。
  2. platform-operators-aggregated クラスター Operator が Available=True ステータスを報告していることを確認します。

    $ oc get clusteroperator platform-operators-aggregated -o yaml

    出力例

    ...
    status:
      conditions:
      - lastTransitionTime: "2022-10-24T17:43:26Z"
        message: All platform operators are in a successful state
        reason: AsExpected
        status: "False"
        type: Progressing
      - lastTransitionTime: "2022-10-24T17:43:26Z"
        status: "False"
        type: Degraded
      - lastTransitionTime: "2022-10-24T17:43:26Z"
        message: All platform operators are in a successful state
        reason: AsExpected
        status: "True"
        type: Available

4.12.5. Platform Operator の削除

クラスター管理者は、既存の Platform Operator を削除できます。Operator Lifecycle Manager (OLM) はカスケード削除を実行します。最初に、OLM は Platform Operator のバンドルデプロイメントを削除します。次に、registry+v1 タイプのバンドルで参照されているすべてのオブジェクトを削除します。

注記

Platform Operator マネージャーとバンドルデプロイメントプロビジョナーは、バンドルで参照されるオブジェクトのみを管理しますが、バンドルワークロード自体によって後でデプロイされるオブジェクトは管理しません。たとえば、バンドルワークロードが namespace を作成し、Operator が削除される前にそれをクリーンアップするように Operator が設定されていない場合、Platform Operator の削除中にnamespaceを削除することは OLM の範囲外です。

手順

  1. インストールされている Platform Operator のリストを取得し、削除する Operator の名前を見つけます。

    $ oc get platformoperator
  2. 選択した Operator (Quay Operator など) の PlatformOperator リソースを削除します。

    $ oc delete platformoperator quay-operator

    出力例

    platformoperator.platform.openshift.io "quay-operator" deleted

検証

  1. Platform Operator の namespace が最終的に削除されることを確認します (たとえば、Quay Operator の場合)。

    $ oc get ns quay-operator-system

    出力例

    Error from server (NotFound): namespaces "quay-operator-system" not found

  2. platform-operators-aggregated クラスター Operator が引き続き Available=True ステータスを報告することを確認します。

    $ oc get co platform-operators-aggregated

    出力例

    NAME                            VERSION     AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    platform-operators-aggregated   4.12.0-0    True        False         False      70s