3.2. OpenShift Container Storage Operator
ocs-operator は、OpenShift Data Foundation のメタ Operator 、つまり、他の Operator に影響を与えることを目的とした Operator であり、他の Operator が提供する機能の設定ゲートウェイとして機能します。他の演算子を直接管理しません。
ocs-operator には、以下の主要機能があります。
- 他の Operator をトリガーしてそれらに対して調整するカスタムリソース (CR) を作成します。
- Ceph および Multicloud Object Gateway 設定を抽象化し、それらを Red Hat が検証し、サポートする既知のベストプラクティスに制限します。
- サポートポリシーに従って、コンテナー化された Ceph および NooBaa をデプロイするのに必要なリソースを作成し、調整します。
3.2.1. コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
ocs-operator には依存コンポーネントがありません。ただし、Operator には、ClusterServiceVersion (CSV) で定義される他の Operator からすべてのカスタムリソース定義 (CRD) の存在に依存しています。
3.2.2. 設計ダイアグラム リンクのコピーリンクがクリップボードにコピーされました!
この図は、OpenShift Container Storage が OpenShift Container Platform とどのように統合されているかを示しています。
図3.2 OpenShift Container Storage Operator
3.2.3. 責任 リンクのコピーリンクがクリップボードにコピーされました!
2 つの ocs-operator CRD は次のとおりです。
-
OCSInitialization -
StorageCluster
OCSInitialization は、Operator レベルで適用されるカプセル化操作に使用されるシングルトン CRD です。Operator は、1 つのインスタンスが常に存在することを確認します。CR は以下をトリガーします。
OpenShift Container Storage に必要な初期化タスクを実行します。必要な場合は、
OCSInitializationCRD を削除して、これらのタスクを再度実行するようにトリガーできます。- OpenShift Container Storage に必要なセキュリティーコンテキスト制約 (SCC) が存在することを確認します。
- 高度なトラブルシューティングおよび復旧操作を実行するために使用される Ceph ツールボックス Pod のデプロイメントを管理します。
StorageCluster CRD は、OpenShift Container Storage の全機能を提供するシステムを表します。これは Operator をトリガーし、CRD Rook-Ceph および NooBaa の生成および調整を行うことができます。ocs-operator アルゴリズムは、StorageCluster 仕様の設定に基づいて CRD CephCluster および NooBaa を生成します。Operator は CephBlockPools、Routes などの追加の CR も作成します。これらのリソースは、OpenShift Container Storage のさまざまな機能を有効にするのに必要です。現時点で、OpenShift Container Platform クラスターごとに 1 つの StorageCluster CR のみがサポートされます。
3.2.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
ocs-operator は、定義する CRD の仕様に応じて、次の CR を作成します。これらのリソースの一部の設定は上書きでき、生成された仕様の変更を許可したり、新規に作成しなくて済むようにできます。
- 一般的なリソース
- イベント
- 調整に対応するために必要に応じてさまざまなイベントを作成します。
- 永続ボリューム (PV)
- PV は Operator が直接作成するものではありません。ただし、Operator は Ceph CSI ドライバーで作成されたすべての PV を追跡し、サポートされる機能に適切なアノテーションが PV にあることを確認します。
- クイックスタート
- OpenShift Container Platform コンソールのさまざまなクイックスタート CR をデプロイします。
- Rook-Ceph リソース
CephBlockPool-
デフォルトの Ceph ブロックプールを定義します。Ceph オブジェクトストアの
CephFilesysPrometheusRulesoute。 StorageClass-
デフォルトのストレージクラスを定義します。たとえば、
CephBlockPoolおよびCephFilesystem用です。 VolumeSnapshotClass- 対応するストレージクラスのデフォルトボリュームスナップショットクラスを定義します。
- Multicloud Object Gateway リソース
NooBaa- デフォルトの Multicloud Object Gateway システムを定義します。
- リソースの監視
- Metrics Exporter Service
- Metrics Exporter Service Monitor
- PrometheusRules
3.2.5. 制限 リンクのコピーリンクがクリップボードにコピーされました!
ocs-operator は OpenShift Data Foundation の他の Pod をデプロイしたり、調整したりしません。ocs-operator CSV は、Operator Deployment および Operator Lifecycle Manager (OLM) などの最上位のコンポーネントを定義します。
3.2.6. 高可用性 リンクのコピーリンクがクリップボードにコピーされました!
高可用性は、他のほとんどの Operator と同様、ocs-operator Pod の主な要件ではありません。通常、プロセスのディストリビューションに必要な操作や利点はありません。OpenShift Container Platform は、現在の Pod が利用できなくなるか、削除されるたびに、置換 Pod を迅速に立ち上げます。
3.2.7. 関連する設定ファイル リンクのコピーリンクがクリップボードにコピーされました!
ocs-operator 設定は CSV によって完全に指定され、CSV のカスタムビルドがなければ変更できません。
3.2.8. 関連するログファイル リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Storage を理解し、問題のトラブルシューティングを行うには、以下を参照してください。
- Operator Pod ログ
- StorageCluster のステータスおよびイベント
- OCSInitialization ステータス
Operator Pod ログ
各 Operator は、調整および発生したエラーについての情報が含まれる標準の Pod ログを提供します。これらのログには多くの場合、正常な調整に関する情報があり、これを除外して無視できます。
StorageCluster のステータスおよびイベント
StorageCluster CR は、CR のステータスに調整の詳細を保存し、関連するイベントを持ちます。ステータスには、予想されるコンテナーイメージのセクションが含まれます。これは、他の Operator からの Pod に存在する必要があるコンテナーイメージと、現在検出するイメージを示します。これは、OpenShift Container Storage のアップグレードが完了したかどうかを判断するのに役立ちます。
OCSInitialization ステータス
このステータスは、初期化タスクが正常に完了したかどうかを示します。
3.2.9. ライフサイクル リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Storage バンドルがインストールされている限り、ocs-operator が存在する必要があります。これは、OLM による OpenShift Container Storage CSV の調整の一部として管理されます。Pod の少なくとも 1 つのインスタンスが Ready 状態にある必要があります。
CRD などの Operator オペランドは Operator のライフサイクルには影響しません。OCSInitialization CR は常に存在しているはずです。Operator が存在しない場合はこれを作成します。StorageClusters の作成および削除は Operator の制御外の操作であり、管理者によって開始するか、適切な API 呼び出しによって自動化される必要があります。