이 문서는 베어메탈용 GKE를 실행하는 애플리케이션 소유자와 플랫폼 관리자를 대상으로 합니다. 이 문서에서는 Google Distributed Cloud에서 VM 런타임을 사용하는 VM의 스토리지 클래스를 만들고 사용하는 방법을 보여줍니다. StorageClass
을 사용하면 VM의 다양한 요구를 충족하기 위해 다양한 스토리지 구성을 정의할 수 있습니다.
시작하기 전에
이 문서를 완료하려면 베어메탈용 GKE 버전 1.12.0(anthosBareMetalVersion: 1.12.0
) 이상 클러스터에 액세스할 수 있어야 합니다. 워크로드 실행이 가능한 모든 클러스터 유형을 사용할 수 있습니다. 필요한 경우 Compute Engine에서 베어메탈용 GKE를 사용해 보거나 클러스터 만들기 개요를 참조하세요.
스토리지 클래스 개요
StorageClass
을 사용하여 VM에 사용할 수 있는 스토리지 유형을 정의합니다. 다양한 스토리지 클래스가 여러 유형의 스토리지 하드웨어, 파일 시스템 또는 성능에 매핑될 수 있습니다. Google Distributed Cloud의 VM 런타임에서 스토리지 클래스를 만들고 사용하여 컴퓨팅 워크로드를 지원할 수 있습니다. 자세한 내용은 저장소 클래스를 참조하세요.
Google Distributed Cloud의 VM 런타임에 대한 커스텀 리소스에 기본 StorageClass
를 정의할 수 있습니다. VirtualMachineDisks,
를 만들 때 특정 클래스를 정의하지 않으면 이 기본 StorageClass
가 사용됩니다. 초기 StorageClass
는 구성되지 않고 기본값으로 설정됩니다. 다음 섹션에서는 이 기본 StorageClass를 설정 또는 업데이트하는 방법을 알아봅니다.
기본 StorageClass 설정 또는 업데이트
처음에는 Google Distributed Cloud에서 VM 런타임을 사용하는 베어메탈용 GKE에 기본 StorageClass
가 구성되어 있지 않았습니다. StorageClass
를 지정하지 않고 VirtualMachineDisk
를 만들려면 먼저 StorageClass
를 만든 다음 기본값으로 설정해야 합니다.
VirtualMachineDisk
를 만들 때 Google Distributed Cloud의 VM 런타임이 사용하는 기본 StorageClass
를 처음 설정하거나 업데이트하려면 VMRuntime
커스텀 리소스를 업데이트합니다.
VMRuntime
커스텀 리소스를 수정합니다.kubectl edit vmruntime
사용할 기본
StorageClass
를 지정하는spec.storage
섹션을 추가하거나 업데이트합니다.apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: enabled: true storage: defaultStorageClass: STORAGE_CLASS_NAME ...
사용할 기본
StorageClass
의 이름으로STORAGE_CLASS_NAME
을 수정합니다. 먼저StorageClass
를 만들어야 하는 경우StorageClass
만들기를 참조하세요.편집기에서
VMRuntime
커스텀 리소스를 저장하고 닫습니다.이제 가상 머신 디스크를 만들고
StorageClass
를 지정하지 않으면 지정한StorageClass
가 사용됩니다. 다음 섹션에서는 디스크를 만들고 특정 StorageClass를 사용하는 방법을 보여줍니다.기존
VirtualMachineDisk
리소스는 새로 지정된StorageClass
를 사용하도록 업데이트되지 않습니다.
특정 StorageClass 사용
VirtualMachineDisk
를 만들 때 기본 StorageClass
를 사용하지 않으려면 storageClassName
필드를 사용하여 다른 StorageClass
를 지정합니다.
VirtualMachineDisk
를 만들 때 이미 정의된 특정 StorageClass
를 사용하려면 다음 단계를 완료합니다.
원하는 편집기에서
my-disk.yaml
과 같은VirtualMachineDisk
매니페스트를 만듭니다.nano my-disk.yaml
다음 YAML 매니페스트를 복사하여 붙여넣습니다.
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: DISK_NAME spec: size: 10Gi storageClassName: STORAGE_CLASS_NAME
다음 값을 바꿉니다.
DISK_NAME
: 디스크의 이름입니다.STORAGE_CLASS_NAME
: 디스크에 사용할StorageClass
입니다. 이StorageClass
는 이미 존재해야 합니다. 먼저StorageClass
를 만들어야 하는 경우 StorageClass 만들기를 참조하세요.
편집기에서 디스크 매니페스트를 저장하고 닫습니다.
kubectl
을 사용하여 디스크를 만듭니다.kubectl apply -f my-disk.yaml
스토리지 프로필 구성
스토리지 프로필은 각 StorageClass
와 연결된 추가 구성 옵션을 제공합니다. 이러한 구성 옵션에는 StorageClass
를 사용하는 VirtualMachineDisks
에 사용할 액세스 모드 및 볼륨 모드가 포함됩니다.
구성된 스토리지 프로필이 없으면 디스크는 기본적으로 ReadWriteOnce
액세스 모드로 설정됩니다. 이 액세스 모드는 라이브 마이그레이션과 같은 기능이 작동하지 않기 때문에 프로덕션 워크로드에 충분하지 않습니다. 구성된 스토리지 프로필이 없는 기본 볼륨 모드는 Filesystem
입니다.
Google Distributed Cloud의 VM 런타임은 클러스터의 StorageClass
마다 스토리지 프로필 하나를 자동으로 생성합니다. 스토리지 프로필은 연결된 StorageClass
와 이름이 동일합니다. 다음 출력 예시는 클러스터에 4개의 스토리지 클래스 및 연결된 프로필이 있음을 보여줍니다.
$ kubectl get storageprofiles
NAME AGE
anthos-system 11d
node-disk 11d
standard 11d
nfs 11d
스토리지 프로필을 수정하고 액세스 모드 또는 볼륨 모드를 변경하려면 다음 단계를 완료합니다.
수정을 위해
StorageProfile
커스텀 리소스를 수정합니다.kubectl edit storageprofile STORAGE_PROFILE_NAME
STORAGE_PROFILE_NAME
을 수정하려는StorageProfile
로 바꿉니다.StorageProfile
의spec.claimPropertySets
목록에 단일 항목을 추가합니다.apiVersion: cdi.kubevirt.io/v1beta1 kind: StorageProfile metadata: name: nfs spec: claimPropertySets: - accessModes: - ACCESS_MODE volumeMode: VOLUME_MODE
accessMode
및volumeMode
는 기본 Kubernetes 구성요소를 사용합니다. 설정하는 값은 사용하는 스토리지 드라이버에 따라 다릅니다. 사용하는 스토리지에 맞게 다음 값을 바꿉니다.ACCESS_MODE
: 사용하려는 액세스 모드입니다. 연결된StorageClass
에서 지원하는 경우 권장 액세스 모드는ReadWriteMany
입니다.- 허용되는 값에는
ReadWriteOnce
,ReadOnlyMany
,ReadWriteMany
및ReadWriteOncePod
가 포함됩니다. 지정하지 않으면 Google Distributed Cloud의 VM 런타임 기본값에 따라ReadWriteOnce
가 사용됩니다. 자세한 내용은 액세스 모드를 참조하세요.
- 허용되는 값에는
VOLUME_MODE
: 사용하려는 볼륨 모드입니다.- 허용되는 값에는
Filesystem
과Block
이 포함됩니다. 지정하지 않으면 Kubernetes 기본값에 따라Filesystem
이 사용됩니다. 자세한 내용은 볼륨 모드를 참조하세요.
- 허용되는 값에는
편집기에서
StorageProfile
커스텀 리소스를 저장하고 닫습니다.정의한 스토리지 프로필 설정은 이제 가상 디스크를 만들 때 사용됩니다. 기존
VirtualMachineDisk
리소스는 정의된 스토리지 프로필 설정을 사용하도록 업데이트되지 않습니다.