vSphere 컨테이너 스토리지 인터페이스 드라이버 사용

이 문서에서는 Google Distributed Cloud에서 vSphere 컨테이너 스토리지 인터페이스(CSI) 드라이버를 사용하는 방법을 설명합니다.

개요

vSphere CSI 드라이버는 VMware용 Google Distributed Cloud(소프트웨어 전용)를 설치할 때 자동으로 배포됩니다. 다른 CSI 드라이버 사용 방법에 대한 자세한 내용은 CSI 드라이버 설치를 참조하세요.

vSphere 요구사항

vSphere CSI 드라이버를 사용하려면 다음이 필요합니다.

볼륨 확장

  • 오프라인 볼륨을 확장하려면 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 드라이버에 볼륨을 프로비저닝하려면 PersistentVolumeClaimstorageClassName 필드를 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_NAMEvSphere 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 사용자 인터페이스에서 볼륨을 찾을 수 있습니다.

  1. 데이터 스토어 선택

  2. 모니터 > 클라우드 기반 스토리지 > 컨테이너 볼륨으로 이동합니다.

  3. 각 볼륨의 세부정보 섹션에서 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

다음 단계