vSphere Container Storage Interface ドライバの使用

このページでは、Anthos clusters on VMware(GKE On-Prem)クラスタで vSphere Container Storage Interface(CSI)ストレージ ドライバを使用する方法について説明します。

概要

Anthos clusters on VMware バージョン 1.5 以降では、自動的に vSphere CSI ドライバが Anthos clusters on VMware クラスタにデプロイされます。他の CSI ドライバの詳細については、CSI ドライバのインストールをご覧ください。

始める前に

次の前提条件を満たしていることを確認してください。

  • vCenter と ESXi は、バージョン 6.7 Update 3 以降でホストする。

    • ボリューム拡張の場合:
    • オフライン拡張を行うには、vCenter と ESXi の両方をバージョン 7.0 以降にする必要があります。
    • オフライン拡張を行うには、vCenter と ESXi の両方をバージョン 7.0 アップデート 2 以降にする必要があります。
  • vSphere のユーザー アカウント権限 cns.searchable

クラスタが CSI の前提条件を満たしているか不明な場合は、CSI ワークロードをデプロイする前に gkectl diagnose cluster を実行します。

ドライバが利用できることの確認

ユーザー クラスタに vSphere CSI ドライバをインストールすると、standard-rwo という StorageClass が作成されます。ドライバがすべてのノードで利用できることを確認するには、次のコマンドを実行します。

kubectl get csinode -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"

次の出力が表示されます。

NAME     DRIVERS
node-0   csi.vsphere.vmware.com
node-1   csi.vsphere.vmware.com
node-2   csi.vsphere.vmware.com

ボリュームのプロビジョニング

vSphere CSI ドライバでボリュームをプロビジョニングするには、PersistentVolumeClaimstorageClassName フィールドを standard-rwo に設定します。

デフォルトのストレージ クラスの設定

standard-rwo をデフォルトのストレージ クラスとして設定するには、デフォルトのストレージ クラスをご覧ください。

StorageClass の追加作成

追加の vSphere CSI StorageClass は、datastoreurl パラメータまたは storagepolicyname パラメータを使用してクラスタに作成できます。

次の例では、storagepolicyname パラメータを使用しています。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gold
parameters:
  csi.storage.k8s.io/fstype: ext4
  storagepolicyname: "Gold Policy"
provisioner: csi.vsphere.vmware.com

datastoreurl パラメータに対する正確な値を確認するには、次のコマンドを実行します。

govc datastore.info DATASTORE_NAME

ここで、DATASTORE_NAMEvSphere データストアの名前です。

datastoreurl には、出力の URL の値を使用します。出力例を以下に示します。

Name:        DATASTORE_NAME
  Path:      /DATACENTER_NAME/datastore/DATASTORE_NAME
  Type:      VMFS
  URL:       ds:///vmfs/volumes/5d864fa0-7f2184d4-8eb4-3cfdfe0ce9a0/
  Capacity:  20479.8 GB
  Free:      10066.9 GB

ボリュームのクリーンアップ

ユーザー クラスタを削除しても、vSphere CSI ドライバによってプロビジョニングされたボリュームは削除されません。すべての PVC と StatefulSet を削除した後、クラスタを削除する必要があります。ボリュームを削除するには、次のコマンドを実行します。

kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all

ここで、MY_NAMESPACE は Kubernetes 名前空間です。

ボリュームを削除せずにユーザー クラスタを削除した場合は、vCenter でボリュームを見つけることができます。

  1. vCenter で、データストアを選択します。

  2. [Monitor] > [Cloud Native Storage] > [Container Volumes] に移動します。

各ボリュームの [Details] セクションに Kubernetes クラスタ名が表示されます。

vSphere CSI ドライバの無効化

vSphere CSI のサポートを削除するには、ユーザー クラスタ構成に次の行を追加します。

# (Optional) Storage specification for the cluster
storage:
# To disable the vSphere CSI driver, set this to true. The value is set to false by default and
# the vSphere CSI driver is enabled by default on vSphere version >= 6.7U3.
  vSphereCSIDisabled: true

次のステップ