이 문서는 베어메탈용 GKE를 실행하는 애플리케이션 소유자 및 플랫폼 관리자를 대상으로 합니다. 이 문서에서는 GDC용 VM 런타임을 사용하는 VM을 만들 때 VM 유형을 생성 및 사용하거나 CPU 및 메모리 리소스를 수동으로 지정하는 방법을 설명합니다.
시작하기 전에
이 문서를 완료하려면 다음 리소스에 대해 액세스 권한이 필요합니다.
- 베어메탈용 GKE 버전 1.12.0(
anthosBareMetalVersion: 1.12.0
) 이상 클러스터에 대한 액세스 권한. 워크로드 실행이 가능한 모든 클러스터 유형을 사용할 수 있습니다. 필요한 경우 Compute Engine에서 베어메탈용 GDCV를 사용해 보거나 클러스터 만들기 개요를 참조하세요. kubectl
의 플러그인으로 설치되는virtctl
클라이언트 도구. 필요한 경우 virtctl 클라이언트 도구를 설치합니다.
VM 만들기
VM을 만들 때 CPU 및 메모리 요구사항을 수동으로 지정할 수 있습니다. 이 기능을 사용하면 애플리케이션 요구와 일치하도록 적합한 컴퓨팅 리소스가 포함된 VM을 만들 수 있습니다.
VM을 만들고 CPU 및 메모리 요구사항을 수동으로 지정하려면 다음 단계를 수행합니다.
CLI
kubectl
을 사용하여 VM을 만듭니다.kubectl virt create vm VM_NAME \ --image ubuntu20.04 \ --cpu CPU_NUMBER \ --memory MEMORY_SIZE
다음 값을 바꿉니다.
VM_NAME
: VM의 이름입니다. 이름 제약조건에 대한 자세한 내용은 객체 이름 및 ID를 참조하세요.CPU_NUMBER
: VM에 할당할 가상 CPU(vCPU) 수입니다.- 1~96개 사이의 vCPU를 VM에 할당할 수 있습니다.
MEMORY_SIZE
: VM에 할당할 메모리 양입니다.- 1M~1T 사이의 메모리를 VM에 할당할 수 있습니다. 자세한 내용은 메모리 리소스 단위를 참조하세요.
매니페스트
원하는 편집기에서 my-custom-vm.yaml과 같은
VirtualMachine
매니페스트를 만듭니다.nano my-custom-vm.yaml
다음 YAML 매니페스트를 복사하여 붙여넣습니다.
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
이 YAML 파일에서 다음 설정을 정의합니다.
VM_NAME
: VM의 이름입니다. 이름 제약조건에 대한 자세한 내용은 객체 이름 및 ID를 참조하세요.VCPU_NUMBER
: VM에 할당할 vCPU 수입니다.- 1~96개 사이의 vCPU를 VM에 할당할 수 있습니다.
MEMORY_SIZE
: VM에 할당할 메모리 양입니다.- 1M~1T 사이의 메모리를 VM에 할당할 수 있습니다. 자세한 내용은 메모리 리소스 단위를 참조하세요.
VM이
eth0
을 기본pod-network
네트워크에 연결합니다.이름이
VM_NAME-boot-dv
인 부팅 디스크가 이미 있어야 합니다. 자세한 내용은 가상 디스크 만들기 및 관리를 참조하세요.편집기에서 VM 매니페스트를 저장하고 닫습니다.
kubectl
을 사용하여 VM을 만듭니다.kubectl apply -f my-custom-vm.yaml
VM 유형 만들기 및 사용
GDC용 VM 런타임을 사용 설정하면 새로운 VirtualMachineType 커스텀 리소스 정의를 사용할 수 있습니다. 이 정의는 VM의 CPU 및 메모리 리소스를 지정하기 위해 사용됩니다. 필요한 여러 다른 워크로드에 대해 VM 유형을 만들고 해당 유형을 기반으로 VM에 일관적인 컴퓨팅 리소스 집합을 적용할 수 있습니다.
베어메탈용 GKE에서 GDC용 VM 런타임이 사용 설정되면 vm-controller-manager
에서 사전 정의된 VM 유형을 설치합니다. 다음 정의는 기본 example-machinetype
VM 유형을 보여줍니다.
apiVersion: vm.cluster.gke.io/v1
kind: VirtualMachineType
metadata:
name: "example-machinetype"
labels:
vm.cluster.gke.io/predefined-machinetype: "true"
spec:
cpu:
vcpus: 2
memory:
capacity: 4G
이 사전 정의된 VM 유형은 업데이트할 수 없습니다. vm-controller-manager
가 시작되거나 다시 시작될 때(예: VM 유형을 삭제한 경우)마다 VM 유형이 클러스터에 존재하지 않으면 이 사전 정의된 VM 유형이 다시 설치됩니다.
VM 유형 만들기
해당 워크로드의 컴퓨팅 요구에 맞게 자체 VM 유형을 만들 수 있습니다.
원하는 편집기에서 my-vm-type.yaml과 같은
VirtualMachineType
매니페스트를 만듭니다.nano my-vm-type.yaml
다음 YAML 매니페스트를 복사하여 붙여넣습니다.
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: my-vm-type spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
이 VM 유형에서는 다음 설정을 정의합니다.
VM_NAME
: VM의 이름입니다. 이름 제약조건에 대한 자세한 내용은 객체 이름 및 ID를 참조하세요.VCPU_NUMBER
: VM에 할당할 vCPU 수입니다.- 1~96개 사이의 vCPU를 VM에 할당할 수 있습니다.
MEMORY_SIZE
: VM에 할당할 메모리 양입니다.- 1M~1T 사이의 메모리를 VM에 할당할 수 있습니다. 자세한 내용은 메모리 리소스 단위를 참조하세요.
편집기에서 VM 유형 매니페스트를 저장하고 닫습니다.
kubectl
을 사용하여 VM 유형을 만듭니다.kubectl apply -f my-vm-type.yaml
VM 유형을 사용하여 VM 만들기
VirtualMachine
매니페스트에 VM 유형을 지정하여 사전 정의된 compute
설정을 VM에 적용합니다.
원하는 편집기에서 my-custom-vm.yaml과 같은
VirtualMachine
매니페스트를 만듭니다.nano my-custom-vm.yaml
다음 YAML 매니페스트를 복사하여 붙여넣습니다.
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: virtualMachineTypeName: my-vm-type interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
이 YAML 파일에서
my-vm-type
과 같이 이전 섹션에서 만든 커스텀 VM 유형의 이름을virtualMachineTypeName
의 값으로 지정합니다.VM이
eth0
을 기본pod-network
네트워크에 연결합니다.이름이
VM_NAME-boot-dv
인 부팅 디스크가 이미 있어야 합니다. 자세한 내용은 가상 디스크 만들기 및 관리를 참조하세요.편집기에서 VM 매니페스트를 저장하고 닫습니다.
kubectl
을 사용하여 VM을 만듭니다.kubectl apply -f my-custom-vm.yaml
다음 단계
- 베어메탈용 GDCV에서 VM 수정
- VM이 더 이상 필요하지 않으면 베어메탈용 GKE에서 VM 삭제