5.11. Red Hat Virtualization CSI Driver Operator
5.11.1. 概要
OpenShift Container Platform は、Red Hat Virtualization (RHV) の Container Storage Interface (CSI) ドライバーを使用して永続ボリューム (PV) をプロビジョニングできます。
Container Storage Interface (CSI) Operator およびドライバーを使用する場合、永続ストレージ および CSI ボリュームの設定 について理解しておくことをお勧めします。
RHV ストレージアセットにマウントする CSI でプロビジョニングされる PV を作成するには、OpenShift Container Platform は openshift-cluster-csi-drivers
namespace にデフォルトで oVirt CSI ドライバーおよび oVirt CSI ドライバーをインストールします。
-
oVirt CSI Driver Operator は、永続ボリューム要求 (PVC) の作成に使用できるデフォルトの
StorageClass
オブジェクトを提供します。 - oVirt CSI ドライバー を使用すると、oVirt PV を作成し、マウントできます。
5.11.2. CSI について
ストレージベンダーはこれまで Kubernetes の一部としてストレージドライバーを提供してきました。Container Storage Interface (CSI) の実装では、サードパーティーのプロバイダーは、コア Kubernetes コードを変更せずに標準のインターフェイスを使用してストレージプラグインを提供できます。
CSI Operator は、in-tree (インツリー) ボリュームプラグインでは不可能なボリュームスナップショットなどのストレージオプションを OpenShift Container Platform ユーザーに付与します。
oVirt CSI ドライバーは、スナップショットをサポートしていません。
5.11.3. oVirt CSI ドライバーのストレージクラス
OpenShift Container Platform は、動的にプロビジョニングされる永続ボリュームを作成するために使用される ovirt-csi-sc
という名前のタイプが StorageClass
のデフォルトオブジェクトを作成します。
異なる設定の追加ストレージクラスを作成するには、以下のサンプル YAML で記述される StorageClass
オブジェクトを使ってファイルを作成し、保存します。
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage-class-name> 1 annotations: storageclass.kubernetes.io/is-default-class: "false" 2 provisioner: csi.ovirt.org parameters: storageDomainName: <rhv-storage-domain-name> 3 thinProvisioning: "true" 4 csi.storage.k8s.io/fstype: ext4 5
5.11.4. RHV での永続ボリュームの作成
PersistentVolumeClaim
(PVC) オブジェクトの作成時に、OpenShift Container Platform は新規の永続ボリューム (PV) をプロビジョニングし、PersistentVolume
オブジェクトを作成します。
前提条件
- 実行中の OpenShift Container Platform クラスターにログインしている。
-
ovirt-credentials
シークレットに正しい RHV 認証情報を指定している。 - oVirt CSI ドライバーをインストールしている。
- 1 つ以上のストレージクラスが定義されている。
手順
Web コンソールを使用して RHV で永続ボリュームを動的に作成する場合は、以下を実行します。
-
OpenShift Container Platform コンソールで、Storage
Persistent Volume Claims をクリックします。 - 永続ボリューム要求 (PVC) の概要で、Create Persistent Volume Claim をクリックします。
- 結果のページで必要なオプションを定義します。
-
適切な
StorageClass
オブジェクト (デフォルトはovirt-csi-sc
) を選択します。 - ストレージ要求の一意の名前を入力します。
- アクセスモードを選択します。現時点で、RWO (ReadWriteOnce) は唯一のサポートされているアクセスモードです。
- ストレージ要求のサイズを定義します。
ボリュームモードを選択します。
Filesystem
: Pod にディレクトリーとしてマウントされます。このモードはデフォルトです。Block
: ファイルシステムのないブロックデバイスです。-
Create をクリックして
PersistentVolumeClaim
オブジェクトを作成し、PersistentVolume
オブジェクトを生成します。
-
OpenShift Container Platform コンソールで、Storage
コマンドラインインターフェイス (CLI) を使用して RHV CSI ボリュームを動的に作成するには、以下を実行します。
以下のサンプル YAML によって記述される
PersistentVolumeClaim
オブジェクトを使ってファイルを作成し、保存します。pvc-ovirt.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-ovirt spec: storageClassName: ovirt-csi-sc 1 accessModes: - ReadWriteOnce resources: requests: storage: <volume size> 2 volumeMode: <volume mode> 3
以下のコマンドを実行して、直前の手順で保存されたオブジェクトを作成します。
$ oc create -f pvc-ovirt.yaml
ボリュームが作成され、準備状態にあることを確認するには、以下のコマンドを実行します。
$ oc get pvc pvc-ovirt
pvc-manila
は、これが Bound であることを示します。
関連情報