vSphere Container Storage Interface ドライバの使用

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

概要

vSphere CSI ドライバは、Anthos clusters on VMware に自動的にデプロイされます。他の CSI ドライバの使用の詳細については、CSI ドライバのインストールをご覧ください。

vSphere の要件

vSphere CSI ドライバを使用するには、次のものが必要です。

ボリューム拡張

  • オフライン ボリュームの拡張では、vCenter Server と ESXi の両方がバージョン 7.0 Update 1 以降である必要があります。

  • オンライン ボリュームの拡張では、vCenter Server と ESXi の両方がバージョン 7.0 Update 2 以降である必要があります。

Cns. 検索可能

vCenter ユーザー アカウントには、ルート vCenter オブジェクトに対する Cns.Searchable 権限が必要です。

CSI の前提条件の確認

アカウントが 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

次のステップ