이 문서는 베어메탈용 GKE를 실행하는 애플리케이션 소유자 및 플랫폼 관리자를 대상으로 합니다. 이 문서에서는 GDC용 VM 런타임을 사용하는 VM의 스토리지 클래스를 만들고 사용하는 방법을 보여줍니다. StorageClass
을 사용하면 VM의 다양한 요구를 충족하기 위해 다양한 스토리지 구성을 정의할 수 있습니다.
시작하기 전에
이 문서를 완료하려면 베어메탈용 GKE 버전 1.12.0(anthosBareMetalVersion: 1.12.0
) 이상 클러스터에 액세스할 수 있어야 합니다. 워크로드 실행이 가능한 모든 클러스터 유형을 사용할 수 있습니다. 필요한 경우 Compute Engine에서 베어메탈용 GDCV를 사용해 보거나 클러스터 만들기 개요를 참조하세요.
스토리지 클래스 개요
StorageClass
을 사용하여 VM에 사용할 수 있는 스토리지 유형을 정의합니다. 다양한 스토리지 클래스가 여러 유형의 스토리지 하드웨어, 파일 시스템 또는 성능에 매핑될 수 있습니다. 스토리지 클래스를 만들고 사용하여 GDC용 VM 런타임에서 컴퓨팅 워크로드를 지원할 수 있습니다. 자세한 내용은 저장소 클래스를 참조하세요.
GDC용 VM 런타임에 대한 커스텀 리소스에 기본 StorageClass
를 정의할 수 있습니다. VirtualMachineDisks,
를 만들 때 특정 클래스를 정의하지 않으면 이 기본 StorageClass
가 사용됩니다. 초기 StorageClass
는 구성되지 않고 기본값으로 설정됩니다. 다음 섹션에서는 이 기본 StorageClass를 설정 또는 업데이트하는 방법을 알아봅니다.
기본 StorageClass 설정 또는 업데이트
처음에는 GDC용 VM 런타임을 사용하는 베어메탈용 GKE에 기본 StorageClass
가 구성되어 있지 않았습니다. StorageClass
를 지정하지 않고 VirtualMachineDisk
를 만들려면 먼저 StorageClass
를 만든 다음 기본값으로 설정해야 합니다.
VirtualMachineDisk
를 만들 때 GDC용 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
입니다.
GDC용 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
가 포함됩니다. 지정하지 않은 경우 GDC용 VM 런타임 기본값에 따라ReadWriteOnce
이 사용됩니다. 자세한 내용은 액세스 모드를 참조하세요.
- 허용되는 값에는
VOLUME_MODE
: 사용하려는 볼륨 모드입니다.- 허용되는 값에는
Filesystem
과Block
이 포함됩니다. 지정하지 않으면 Kubernetes 기본값에 따라Filesystem
이 사용됩니다. 자세한 내용은 볼륨 모드를 참조하세요.
- 허용되는 값에는
편집기에서
StorageProfile
커스텀 리소스를 저장하고 닫습니다.정의한 스토리지 프로필 설정은 이제 가상 디스크를 만들 때 사용됩니다. 기존
VirtualMachineDisk
리소스는 정의된 스토리지 프로필 설정을 사용하도록 업데이트되지 않습니다.