6 ストレージ
コンピューティング業界で意味のあるワークロードごとに、ある種類のデータ・ストレージが必要です。 永続ストレージは、データベースなどのステートフル・アプリケーションを操作する際に不可欠です。コンテナのライフサイクルを超えてデータを保持することも、ポッド自体を保持することも重要であるためです。
Kubernetesの永続ストレージは、PersistentVolumeオブジェクトの形式で処理され、PersistentVolumeClaimを使用してポッドにバインドされます。 PersistentVolumeは、ローカルまたはネットワーク・ストレージ・デバイスまたはサービス上でホストできます。
一般的なKubernetes環境には、多数のホストが含まれ、ある種のネットワーク・ストレージが含まれています。 ネットワーク・ストレージを使用すると、レジリエンスの保証に役立ち、クラスタ環境を最大限に活用できます。 ポッドを実行中のノードが失敗した場合は、別のノードで新しいポッドを開始でき、ストレージ・アクセスを再開できます。 このことは、レプリカ設定が構成されているデータベース環境にとって重要です。
永続ストレージ
永続ストレージは、PersistentVolumeサブシステムを使用してKubernetesで提供されます。 永続ストレージを構成するには、次の用語を理解しておく必要があります:
-
PersistentVolume
PersistentVolumeは、使用されているストレージのタイプと、そのストレージへの接続に使用されるメソッドを定義します。 これは、データの格納に使用される実際のディスクまたはネットワーク・ストレージ・サービスです。
-
PersistentVolumeClaim
PersistentVolumeClaimは、ポッドなどのコンシューマがPersistentVolumeをバインドするために使用するパラメータを定義します。 要求では、コンシューマのリソースに適用する割当ておよびアクセス・モードを指定できます。 ポッドは、PersistentVolumeClaimを使用してボリュームにアクセスし、マウントできます。
-
StorageClass
StorageClassは、ユーザーがPersistentVolumeのストレージを事前構成しなくてもPersistentVolumeClaimsを定義できるようにする、プロビジョニング機能と呼ばれるボリューム・プラグインを指定するオブジェクトです。 これを使用すると、PersistentVolumeClaimのライフサイクルに対して動的にプロビジョニングできるプール済リソースとして、類似したボリューム・タイプへのアクセスを提供できます。
PersistentVolumesは、静的に、または動的にプロビジョニングできます。
静的PersistentVolumesは手動で作成され、実際のストレージへのアクセスに必要な詳細を含み、関連するPersistentVolumeClaimを持つ任意のポッドによって直接使用できます。
PersistentVolumeClaimが既存の静的PersistentVolumeと一致せず、リクエストで既存のStorageClassがリクエストされた場合は、動的PersistentVolumesを自動的に生成できます。 StorageClassは、動的にアクセス可能なストレージ・プールをホストするように定義できます。 StorageClassの作成はオプションのステップであり、動的プロビジョニングを使用する場合にのみ必要です。
永続ストレージをプロビジョニングするプロセスは次のとおりです:
-
PersistentVolumeまたはStorageClassを作成します。
-
PersistentVolumeClaimsを作成します。
-
PersistentVolumeClaimを使用するようにポッドを構成します。
NFSおよびiSCSIボリュームを追加および構成するプロセスの詳細は、「アップストリームのドキュメント」を参照してください。
コンテナ・ストレージ・インタフェース・プラグイン
コンテナ・ストレージ・インタフェース(CSI)は、コンテナ・エンジンからストレージ・ワークロードを制御するためのOpen Container Initiative標準です。 Kubernetesは、このインタフェースを実装して、Kubernetesクラスタ内のストレージ・ワークロードに対して自動制御を提供します。 Kubernetesストレージ・プロビジョナのリストは、「アップストリームのドキュメント」を参照してください。
CSIプラグインは、Oracle Cloud Native EnvironmentのKubernetesクラスタにインストールできます。 CSIプラグインのインストールを簡単に実行できるように、Oracleには複数のストレージ関連モジュールが用意されています。
Oracle Cloud Native EnvironmentのOracle Cloud Infrastructure Cloud Controller Managerモジュールを使用して、Oracle Cloud InfrastructureのCSIプラグインを設定できます。
Oracle Cloud Native EnvironmentのRookモジュールは、CephのCSIプラグインを設定するために使用できます。