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 を使用して、TechPreviewNoUpgrade
機能セットが有効になっているクラスターでクラスターを作成する前または後に 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 を正常にインストールできます。
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 クラスターにアクセスできる。 クラスターで有効になっている
TechPreviewNoUpgrade
機能セット。警告TechPreviewNoUpgrade
機能セットを有効にすると元に戻すことができなくなり、マイナーバージョンの更新ができなくなります。これらの機能セットは、実稼働クラスターでは推奨されません。-
クラスターで有効になっている
redhat-operators
カタログソースのみ。これは、テクノロジープレビューリリース中の制限です。 -
ワークステーションにインストールされた
oc
コマンド。
4.12.3. クラスター作成時の Platform Operator のインストール
クラスター管理者は、クラスターの作成中に FeatureGate
および PlatformOperator
マニフェストを提供することにより、Platform Operator をインストールできます。
手順
- サポートされている OLM ベースの Operator のセットから Platform Operator を選択します。このセットのリストと現在の制限の詳細は、"Platform Operator のテクノロジープレビューの制限" を参照してください。
-
クラスターのインストール方法を選択し、指示に従って
install-config.yaml
ファイルを作成します。クラスターインストールの準備の詳細は、「クラスターインストール方法の選択とユーザー用の準備」を参照してください。 install-config.yaml
ファイルを作成して変更を完了したら、インストールプログラムを含むディレクトリーに移動し、マニフェストを作成します。$ ./openshift-install create manifests --dir <installation_directory> 1
- 1
<installation_directory>
については、クラスターのinstall-config.yaml
ファイルが含まれるディレクトリーの名前を指定します。
<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
機能セットを有効にします。
選択した 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
クラスターのインストールを完了する準備ができたら、選択したインストール方法を参照し、
openshift-install create cluster
コマンドの実行を続行します。クラスターの作成中に、提供されたマニフェストを使用して
TechPreviewNoUpgrade
機能セットを有効にし、選択した Platform Operator をインストールします。重要Platform Operator が正常にインストールされないと、クラスターのインストールプロセスがブロックされます。
検証
次のコマンドを実行して、
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
を報告するまで待ちます。
platform-operators-aggregated
Cluster 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 を使用して TechPreviewNoUpgrade
機能セットを有効にしたクラスターにクラスターを作成した後、Platform Operator をインストールできます。
手順
- サポートされている OLM ベースの Operator のセットから Platform Operator を選択します。このセットのリストと現在の制限の詳細は、"Platform Operator のテクノロジープレビューの制限" を参照してください。
選択した 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
次のコマンドを実行して、
PlatformOperator
オブジェクトを作成します。$ oc apply -f service-mesh-po.yaml
注記クラスターで
TechPreviewNoUpgrade
機能セットが有効になっていない場合、オブジェクトの作成は次のメッセージで失敗します。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
検証
次のコマンドを実行して、
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
を報告するまで待ちます。
platform-operators-aggregated
Cluster 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 の範囲外です。
手順
インストールされている Platform Operator のリストを取得し、削除する Operator の名前を見つけます。
$ oc get platformoperator
選択した Operator (Quay Operator など) の
PlatformOperator
リソースを削除します。$ oc delete platformoperator quay-operator
出力例
platformoperator.platform.openshift.io "quay-operator" deleted
検証
Platform Operator の namespace が最終的に削除されることを確認します (たとえば、Quay Operator の場合)。
$ oc get ns quay-operator-system
出力例
Error from server (NotFound): namespaces "quay-operator-system" not found
platform-operators-aggregated
Cluster 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