4.12. プラットフォーム Operator の管理 (テクノロジープレビュー)
プラットフォーム Operator は OLM ベースの Operator であり、OpenShift Container Platform クラスターの Day 0 操作中または操作後にインストールでき、クラスターのライフサイクルに参加します。クラスター管理者は、PlatformOperator
API を使用してプラットフォーム Operator を管理できます。
プラットフォーム Operator タイプはテクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat の実稼働環境におけるサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
4.12.1. プラットフォーム Operator について
Operator Lifecycle Manager (OLM) は、プラットフォーム Operator と呼ばれる新しいタイプの Operator を導入します。プラットフォーム Operator は OLM ベースの Operator であり、OpenShift Container Platform クラスターの Day 0 操作中または操作後にインストールでき、クラスターのライフサイクルに参加します。クラスター管理者は、プラットフォーム Operator を使用して OpenShift Container Platform インストールをさらにカスタマイズし、要件とユースケースを満たすことができます。
クラスター管理者は、OpenShift Container Platform の既存のクラスター機能機能を使用して、クラスターのインストール前に、初期ペイロードに必須ではないと見なされる Cluster Version Operator ベース (CVO) コンポーネントのサブセットを無効にすることができます。プラットフォーム Operator は、追加のカスタマイズオプションを提供することで、このモデルを反復します。RukPak コンポーネントからのリソースに依存するプラットフォーム Operator メカニズムを通じて、OLM ベースの Operator をクラスターのインストール時にインストールできるようになり、Operator が正常にインストールに失敗した場合はクラスターのロールアウトをブロックできます。
OpenShift Container Platform 4.12 では、このテクノロジープレビューリリースは基本的なプラットフォーム Operator メカニズムに焦点を当て、今後のリリースで概念を拡張するための基盤を構築します。クラスター全体の PlatformOperator
API を使用して、TechPreviewNoUpgrades
機能セットが有効になっているクラスターでクラスターを作成する前または後に Operator を設定できます。
4.12.1.1. プラットフォーム Operator のテクノロジープレビューの制限事項
OpenShift Container Platform 4.12 のプラットフォーム Operator 機能のテクノロジープレビューリリース中、以下の制限により、プラットフォーム Operator メカニズムを介して Operator をインストールできるかどうかが決まります。
-
Kubernetes マニフェストは、Operator Lifecycle Manager (OLM)
registry+v1
バンドル形式を使用してパッケージ化する必要があります。 - Operator は、パッケージまたはグループ/バージョン/種類 (GVK) の依存関係を宣言できません。
-
Operator は、
AllNamespaces
以外のクラスターサービスバージョン (CSV) インストールモードを指定できません。 -
Operator は
Webhook
およびAPIService
定義を指定できません。 -
すべてのパッケージバンドルは、
redhat-operators
カタログソースに含まれている必要があります。
これらの制限を考慮した後、次の Operator を正常にインストールできます。
表4.2 プラットフォーム 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-cert-manager-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 |
次の機能は、このテクノロジープレビューリリースでは利用できません。
- クラスターのロールアウト後にプラットフォーム Operator パッケージを自動的にアップグレードする
- オプションの CVO ベースのコンポーネントをサポートするようにプラットフォーム Operator メカニズムを拡張する
4.12.2. 前提条件
-
cluster-admin
パーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 クラスターで有効になっている
TechPreviewNoUpgrades
機能セット。警告TechPreviewNoUpgrade
機能セットを有効にすると元に戻すことができなくなり、マイナーバージョンの更新ができなくなります。これらの機能セットは、実稼働クラスターではは推奨されません。-
クラスターで有効になっている
redhat-operators
カタログソースのみ。これは、テクノロジープレビューリリース中の制限です。 -
ワークステーションにインストールされた
oc
コマンド。
4.12.3. クラスター作成時のプラットフォーム Operator のインストール
クラスター管理者は、クラスターの作成中に FeatureGate
および PlatformOperator
マニフェストを提供することにより、プラットフォーム Operator をインストールできます。
手順
- サポートされている OLM ベースの Operator のセットからプラットフォーム Operator を選択します。このセットのリストと現在の制限の詳細については、プラットフォーム 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
機能セットを有効にします。
選択したプラットフォーム Operator の
PlatformOperator
オブジェクト YAML ファイルを<installation_directory>/manifests/
ディレクトリーに作成します。たとえば、Red Hat OpenShift の cert-manager Operator のcert-manager.yaml
ファイルです。cert-manager.yaml
ファイルの例apiVersion: platform.openshift.io/v1alpha1 kind: PlatformOperator metadata: name: cert-manager spec: package: name: openshift-cert-manager-operator
クラスターのインストールを完了する準備ができたら、選択したインストール方法を参照し、
openshift-install create cluster
コマンドの実行を続行します。クラスターの作成中に、提供されたマニフェストを使用して
TechPreviewNoUpgrade
機能セットを有効にし、選択したプラットフォーム Operator をインストールします。重要プラットフォーム Operator が正常にインストールされないと、クラスターのインストールプロセスがブロックされます。
検証
次のコマンドを実行して、
cert-manager
プラットフォーム Operator のステータスを確認します。$ oc get platformoperator cert-manager -o yaml
出力例
... status: activeBundleDeployment: name: cert-manager conditions: - lastTransitionTime: "2022-10-24T17:24:40Z" message: Successfully applied the cert-manager BundleDeployment resource reason: InstallSuccessful status: "True" 1 type: Installed
- 1
Installed
ステータス条件がTrue
を報告するまで待ちます。
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. クラスター作成後のプラットフォーム Operator のインストール
クラスター管理者は、クラスター全体の PlatformOperator
API を使用して TechPreviewNoUpgrades
機能セットを有効にしたクラスターにクラスターを作成した後、プラットフォーム Operator をインストールできます。
手順
- サポートされている OLM ベースの Operator のセットからプラットフォーム Operator を選択します。このセットのリストと現在の制限の詳細については、プラットフォーム Operator のテクノロジープレビューの制限を参照してください。
選択したプラットフォーム Operator の
PlatformOperator
オブジェクト YAML ファイルを作成します。たとえば、Red Hat OpenShift の cert-manager Operator のcert-manager.yaml
ファイルです。cert-manager.yaml
ファイルの例apiVersion: platform.openshift.io/v1alpha1 kind: PlatformOperator metadata: name: cert-manager spec: package: name: openshift-cert-manager-operator
次のコマンドを実行して、
PlatformOperator
オブジェクトを作成します。$ oc apply -f cert-manager.yaml
注記クラスターで
TechPreviewNoUpgrades
機能セットが有効になっていない場合、オブジェクトの作成は次のメッセージで失敗します。error: resource mapping not found for name: "cert-manager" namespace: "" from "cert-manager.yaml": no matches for kind "PlatformOperator" in version "platform.openshift.io/v1alpha1" ensure CRDs are installed first
検証
次のコマンドを実行して、
cert-manager
プラットフォーム Operator のステータスを確認します。$ oc get platformoperator cert-manager -o yaml
出力例
... status: activeBundleDeployment: name: cert-manager conditions: - lastTransitionTime: "2022-10-24T17:24:40Z" message: Successfully applied the cert-manager BundleDeployment resource reason: InstallSuccessful status: "True" 1 type: Installed
- 1
Installed
ステータス条件がTrue
を報告するまで待ちます。
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. プラットフォーム Operator の削除
クラスター管理者は、既存のプラットフォーム Operator を削除できます。Operator Lifecycle Manager (OLM) はカスケード削除を実行します。最初に、OLM はプラットフォーム Operator のバンドルデプロイメントを削除します。次に、registry+v1
タイプのバンドルで参照されているすべてのオブジェクトを削除します。
プラットフォーム Operator マネージャーとバンドルデプロイメントプロビジョナーは、バンドルで参照されるオブジェクトのみを管理しますが、バンドルワークロード自体によって後でデプロイされるオブジェクトは管理しません。たとえば、バンドルワークロードが namespace を作成し、Operator が削除される前にそれをクリーンアップするように Operator が設定されていない場合、プラットフォーム Operator の削除中にnamespaceを削除することは OLM の範囲外です。
手順
インストールされているプラットフォーム Operator のリストを取得し、削除する Operator の名前を見つけます。
$ oc get platformoperator
選択した Operator (Quay Operator など) の
PlatformOperator
リソースを削除します。$ oc delete platformoperator quay-operator
出力例
platformoperator.platform.openshift.io "quay-operator" deleted
検証
プラットフォーム Operator の namespace が最終的に削除されることを確認します (たとえば、Quay Operator の場合)。
$ oc get ns quay-operator-system
出力例
Error from server (NotFound): namespaces "quay-operator-system" not found
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