4.13. 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 にディスクを作成し、このディスクを正しいイメージに割り当てます。

注記

OpenShift Container Platform は、自由にクラスターないのノードにあるボリュームをアタッチしたり、アタッチ解除できるように、個別の永続ディスクとして新規ボリュームをプロビジョニングします。そのため、スナップショットを使用するボリュームをバックアップしたり、スナップショットからボリュームを復元したりできません。詳細は、スナップショットの制限 を参照してください。

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

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

重要

OpenShift Container Platform は、vSphere ストレージをプロビジョニングするためにデフォルトで in-tree または CSI 以外のドライバーの使用に設定されます。

今後の OpenShift Container Platform バージョンでは、既存の in-tree プラグインを使用してプロビジョニングされるボリュームは、同等の CSI ドライバーに移行される予定です。CSI 自動マイグレーションはシームレスに行ってください。移行をしても、永続ボリューム、永続ボリューム要求、ストレージクラスなどの既存の API オブジェクトを使用する方法は変更されません。移行についての詳細は、CSI の自動移行 を参照してください。

完全な移行後、in-tree プラグインは最終的に OpenShift Container Platform の今後のバージョンで削除されます。

関連情報

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

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

4.13.2. 前提条件

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

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

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

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

前提条件

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

手順

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

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

4.13.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
    永続ボリューム要求 (PVC) を表す一意の名前。
    2
    永続ボリューム要求 (PVC) のアクセスモード。ReadWriteOnce では、ボリュームは単一ノードによって読み取り/書き込みパーミッションでマウントできます。
    3
    永続ボリューム要求 (PVC) のサイズ。
  2. ファイルから PersistentVolumeClaim オブジェクトを作成します。

    $ oc create -f pvc.yaml

4.13.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 オブジェクト定義を使用して 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
    ボリュームの名前。この名前は永続ボリューム要求 (PVC) または 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. 直前の手順で作成した永続ボリュームにマップする永続ボリューム要求 (PVC) を作成します。PersistentVolumeClaim オブジェクト定義を使用して、ファイル pvc1.yaml を作成します。

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

    $ oc create -f pvc1.yaml

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

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

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