このドキュメントでは、Google Distributed Cloud で vSphere Container Storage Interface(CSI)ドライバを使用する方法について説明します。
概要
vSphere CSI ドライバは、VMware 用 Google Distributed Cloud(ソフトウェアのみ)をインストールするときに自動的にデプロイされます。他の CSI ドライバの使用について詳しくは、CSI ドライバのインストールをご覧ください。
vSphere の要件
vSphere CSI ドライバを使用するための前提条件は次のとおりです。
ボリュームの拡張
オフラインでボリュームの拡張を行うには、vCenter Server と ESXi の両方がバージョン 7.0 Update 1 以降である必要があります。
オンラインでのボリュームの拡張では、vCenter Server と ESXi の両方がバージョン 7.0 Update 2 以降である必要があります。
ボリューム スナップショット
ボリューム スナップショットを使用する場合、vCenter Server と ESXi の両方がバージョン 7.0 Update 3 以降である必要があります。
Cns.Searchable
vCenter ユーザー アカウントに、ルート vCenter オブジェクトに対する Cns.Searchable 権限が必要です。
アカウントが CSI の前提条件を満たしているかが不明な場合は、CSI ワークロードをデプロイする前に gkectl diagnose cluster
を実行します。
ドライバがインストールされていることを確認する
ユーザー クラスタに vSphere CSI ドライバをインストールすると、standard-rwo
という StorageClass が作成されます。
StorageClass オブジェクトを一覧取得します。
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
CLUSTER_KUBECONFIG は、クラスタの kubeconfig ファイルのパスに置き換えます。
出力に standard-rwo
が表示されていることを確認します。次に例を示します。
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
vSphere CSI ドライバがインストールされていることを確認します。
kubectl --kubeconfig CLUSTER_KUBECONFIG 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 ドライバでボリュームをプロビジョニングするには、PersistentVolumeClaim の storageClassName
フィールドを 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_NAME は、vSphere データストアの名前に置き換えます。
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 Namespace に置き換えます。
ボリュームを削除せずにユーザー クラスタを削除した場合は、vSphere のユーザー インターフェースでボリュームを見つけることができます。
データストアを選択
[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