이 문서에서는 Google Distributed Cloud에서 vSphere 컨테이너 스토리지 인터페이스(CSI) 드라이버를 사용하는 방법을 설명합니다.
개요
vSphere CSI 드라이버는 VMware용 Google Distributed Cloud(소프트웨어 전용)를 설치할 때 자동으로 배포됩니다. 다른 CSI 드라이버 사용 방법에 대한 자세한 내용은 CSI 드라이버 설치를 참조하세요.
vSphere 요구사항
vSphere CSI 드라이버를 사용하려면 다음이 필요합니다.
Linux 기반 지원되는 vCenter Server 버전
볼륨 확장
오프라인 볼륨을 확장하려면 vCenter Server와 ESXi 모두 버전 7.0 업데이트 1 이상이어야 합니다.
온라인 볼륨을 확장하려면 vCenter Server와 ESXi 모두 버전 7.0 업데이트 2 이상이어야 합니다.
볼륨 스냅샷
볼륨 스냅샷을 사용하려면 vCenter Server와 ESXi 모두 버전 7.0 업데이트 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 만들기
datastoreurl
또는 storagepolicyname
매개변수를 사용하여 클러스터에 vSphere CSI StorageClass를 추가로 만들 수 있습니다.
다음 예시에서는 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 Datastore 이름으로 바꿉니다.
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 및 StatefulSets를 삭제해야 합니다. 볼륨을 삭제하려면 다음 명령어를 실행합니다.
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
MY_NAMESPACE를 Kubernetes 네임스페이스로 바꿉니다.
볼륨을 삭제하지 않고 사용자 클러스터를 삭제한 경우 vCenter 사용자 인터페이스에서 볼륨을 찾을 수 있습니다.
데이터 스토어 선택
모니터 > 클라우드 기반 스토리지 > 컨테이너 볼륨으로 이동합니다.
각 볼륨의 세부정보 섹션에서 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