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 ドライバのインストールをご覧ください。

始める前に

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

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

なお、Anthos clusters on VMware では、vSphere CSI ボリューム拡張機能はサポートされていません。

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

ユーザー クラスタに 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

次のステップ