3.15. VMware vSphere ボリュームを使用した永続ストレージ

OpenShift Container Platform では、VMWare vSphere の仮想マシンディスク (VMDK: Virtual Machine Disk) ボリュームの使用が可能となります。VMWare vSphere を使用して、OpenShift Container Platform クラスターに永続ストレージをプロビジョニングできます。これには、Kubernetes と VMWare vSphere についてのある程度の理解があることが前提となります。

VMware vSphere ボリュームは動的にプロビジョニングできます。OpenShift Container Platform は vSphere にディスクを作成し、このディスクを正しいイメージに割り当てます。

Kubernetes 永続ボリュームフレームワークは、管理者がクラスターのプロビジョニングを永続ストレージを使用して実行できるようにし、ユーザーが基礎となるインフラストラクチャーの知識がなくてもこれらのリソースを要求できるようにします。

永続ボリュームは単一のプロジェクトまたは namespace にバインドされず、それらは OpenShift Container Platform クラスター間で共有できます。PersistentVolumeClaim (永続ボリューム要求、PVC) はプロジェクトまたは namespace に固有のもので、ユーザーによって要求されます。

追加の参考資料

3.15.1. VMware vSphere ボリュームの動的プロビジョニング

VMware vSphere ボリュームの動的プロビジョニングは推奨される方法です。

3.15.2. 前提条件

  • 使用するコンポーネントの要件を満たす VMware vSphere バージョンにインストールされている OpenShift Container Platform クラスター。VSphere バージョンのサポートに関する詳細は、vSphere へのクラスターのインストールについて参照してください。

以下のいずれかの手順を使用し、デフォルトの StorageClass を使用してそれらのボリュームを動的にプロビジョニングできます。

3.15.2.1. UI を使用した VMware vSphere ボリュームの動的プロビジョニング

OpenShift Container Platform は、ボリュームをプロビジョニングするために thin ディスク形式を使用する thin という名前のデフォルトの StorageClass をインストールします。

前提条件

  • ストレージは、ボリュームとして OpenShift Container Platform にマウントされる前に基礎となるインフラストラクチャーになければなりません。

手順

  1. OpenShift Container Platform コンソールで、StoragePersistent Volume Claims をクリックします。
  2. Persistent Volume Claim (永続ボリューム要求、PVC) の概要で、Create Persistent Volume Claim をクリックします。
  3. 結果のページで必要なオプションを定義します。

    1. thin StorageClass を選択します。
    2. ストレージ要求の一意の名前を入力します。
    3. アクセスモードを選択し、作成されるストレージ要求の読み取り/書き込みアクセスを決定します。
    4. ストレージ要求のサイズを定義します。
  4. Create をクリックし、 PersistentVolumeClaim を作成し、PersistentVolume を生成します。

3.15.2.2. CLI を使用した VMware vSphere ボリュームの動的プロビジョニング

OpenShift Container Platform は、ボリュームをプロビジョニングするために thin ディスク形式を使用する thin という名前のデフォルトの StorageClass をインストールします。

前提条件

  • ストレージは、ボリュームとして OpenShift Container Platform にマウントされる前に基礎となるインフラストラクチャーになければなりません。

手順 (CLI)

  1. 以下の内容でファイル pvc.yaml を作成して VMware vSphere PersistentVolumeClaim を定義できます。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc 1
    spec:
      accessModes:
      - ReadWriteOnce 2
      resources:
        requests:
          storage: 1Gi 3
    1
    PersistentVolumeClaim を表す一意の名前。
    2
    PersistentVolumeClaim のアクセスモード。ReadWriteOnce では、ボリュームは単一ノードによって読み取り/書き込みパーミッションでマウントできます。
    3
    PersistentVolumeClaim のサイズ。
  2. ファイルから PersistentVolumeClaim を作成します。

    $ oc create -f pvc.yaml

3.15.3. VMware vSphere ボリュームの静的プロビジョニング

VMware vSphere ボリュームを静的にプロビジョニングするには、永続ボリュームフレームワークが参照する仮想マシンディスクを作成する必要があります。

前提条件

  • ストレージは、ボリュームとして OpenShift Container Platform にマウントされる前に基礎となるインフラストラクチャーになければなりません。

手順

  1. 仮想マシンディスクを作成します。VMware vSphere ボリュームを静的にプロビジョニングする前に、仮想マシンディスク (VMDK) を手動で作成する必要があります。以下の方法のいずれかを使用します。

    • vmkfstools を使用して作成します。セキュアシェル (SSH) を使用して ESX にアクセスし、以下のコマンドを使用して vmdk ボリュームを作成します。

      $ vmkfstools -c <size> /vmfs/volumes/<datastore-name>/volumes/<disk-name>.vmdk
    • vmware-diskmanager を使用して作成します。

      $ shell vmware-vdiskmanager -c -t 0 -s <size> -a lsilogic <disk-name>.vmdk
  2. VMDK を参照する PersistentVolume を作成します。PersistentVolume オブジェクト定義を使用して pv1.yaml ファイルを作成します。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv1 1
    spec:
      capacity:
        storage: 1Gi 2
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Retain
      vsphereVolume: 3
        volumePath: "[datastore1] volumes/myDisk"  4
        fsType: ext4  5
    1
    ボリュームの名前。この名前は PersistentVolumeClaim または Pod で識別されるものです。
    2
    このボリュームに割り当てられるストレージの量。
    3
    vSphere ボリュームの vsphereVolume で使用されるボリュームタイプ。ラベルは vSphere VMDK ボリュームを Pod にマウントするために使用されます。ボリュームの内容はアンマウントされても保持されます。このボリュームタイプは、VMFS データストアと VSAN データストアの両方がサポートされます。
    4
    使用する既存の VMDK ボリューム。vmkfstools を使用した場合、前述のようにボリューム定義で、データストア名を角かっこ [] で囲む必要があります。
    5
    マウントするファイルシステムタイプです。ext4、xfs、または他のファイルシステムなどが例になります。
    重要

    ボリュームをフォーマットしてプロビジョニングした後に fsType パラメーターの値を変更すると、データ損失や Pod にエラーが発生する可能性があります。

  3. ファイルから PersistentVolume を作成します。

    $ oc create -f pv1.yaml
  4. 直前の手順で作成した PersistentVolume にマップする PersistentVolumeClaim を作成します。PersistentVolumeClaim オブジェクト定義を使用して、ファイル pvc1.yaml を作成します。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc1 1
    spec:
      accessModes:
        - ReadWriteOnce 2
      resources:
       requests:
         storage: "1Gi" 3
      volumeName: pv1 4
    1
    PersistentVolumeClaim を表す一意の名前。
    2
    PersistentVolumeClaim のアクセスモード。ReadWriteOnce では、ボリュームは単一ノードによって読み取り/書き込みパーミッションでマウントできます。
    3
    PersistentVolumeClaim のサイズ。
    4
    既存の PersistentVolume の名前。
  5. ファイルから PersistentVolumeClaim を作成します。

    $ oc create -f pvc1.yaml

3.15.3.1. VMware vSphere ボリュームのフォーマット

OpenShift Container Platform は、ボリュームをマウントしてコンテナーに渡す前に、PersistentVolume (PV) 定義の fsType パラメーター値で指定されたファイルシステムがボリュームに含まれることを確認します。デバイスが指定されたファイルシステムでフォーマットされていない場合、デバイスのデータはすべて消去され、デバイスはそのファイルシステムで自動的にフォーマットされます。

OpenShift Container Platform は初回の使用前にフォーマットするため、フォーマットされていない vSphere ボリュームを PV として使用できます。