특정 CPU 및 메모리 리소스를 사용하여 VM 만들기

Google Distributed Cloud의 VM 런타임을 사용하는 VM을 만들 때 컴퓨팅 리소스를 구성하는 방법은 두 가지입니다.

  • CPU 및 메모리 수동 지정: 컴퓨팅 리소스를 VirtualMachine 매니페스트에서 직접 정의합니다. 이 접근 방식은 일회성 VM 또는 고유한 리소스 할당이 필요한 커스텀 워크로드에 유용합니다.
  • VM 유형 만들기 및 사용: CPU 및 메모리 할당을 표준화하는 재사용 가능한 VirtualMachineType 커스텀 리소스를 정의합니다. 이 접근 방식은 VM Fleet을 관리하고, 클러스터 전반에서 컴퓨팅 일관성을 보장하며, 개발자를 위한 VM 프로비저닝을 간소화하는 데 유용합니다.

시작하기 전에

CPU 및 메모리 리소스를 수동으로 지정하고 VM 유형을 만들고 사용하려면 다음 리소스에 액세스할 수 있어야 합니다.

  • Distributed Cloud Connected 클러스터 버전 1.9.0 이상
  • 클러스터에 액세스하도록 설치 및 구성된 Kubernetes 명령줄 도구 kubectl. 자세한 내용은 설치 kubectl를 참고하세요.
  • 선택사항: kubectl의 플러그인으로 설치된 virtctl 클라이언트 도구. 필요한 경우 virtctl 관리 도구 설치를 참고하세요.

VM 만들기 및 CPU 및 메모리 지정

VM을 만들 때 CPU 및 메모리 요구사항을 수동으로 지정할 수 있습니다. 이 기능을 사용하여 애플리케이션 요구와 일치하도록 적합한 컴퓨팅 리소스가 포함된 VM을 만듭니다.

VM을 만들고 CPU 및 메모리를 지정하려면 VirtualMachine 매니페스트를 사용합니다.

  1. 선호하는 편집기에서 my-custom-vm.yaml과 같은 VirtualMachine 매니페스트를 만듭니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
      namespace: NAMESPACE
    spec:
      compute:
        cpu:
          vcpus: VCPU_NUMBER
        memory:
          capacity: MEMORY_SIZE
      interfaces:
        - name: eth0
          networkName: L2_NETWORK_NAME
          default: true
      disks:
        - virtualMachineDiskName: VM_BOOT_NAME-boot-dv
          boot: true

    이 YAML 파일에서 다음 설정을 정의합니다.

    • VM_NAME: VM의 이름입니다.
    • NAMESPACE: VM의 대상 네임스페이스입니다.
    • L2_NETWORK_NAME: VM을 연결할 L2 네트워크의 이름입니다.
    • VCPU_NUMBER: VM에 할당할 vCPU 수입니다. 1~96개 사이의 vCPU를 VM에 할당할 수 있습니다.
    • MEMORY_SIZE: VM에 할당할 메모리 양입니다. 1Mi~1Ti 사이의 메모리를 VM에 할당할 수 있습니다. 자세한 내용은 Kubernetes 문서의 메모리 리소스 단위를 참고하세요.
    • VM_BOOT_NAME: VM 부팅 디스크의 이름입니다. 부팅 디스크는 이미 있어야 합니다. 자세한 내용은 가상 머신 이미지에서 가상 머신 디스크 만들기를 참고하세요.

    VM은 eth0 인터페이스를 지정된 L2 네트워크에 연결합니다.

  2. VM을 만들려면 kubectl apply 명령어를 사용하여 Distributed Cloud Connected 클러스터에 매니페스트를 적용합니다.

    kubectl apply -f my-custom-vm.yaml
    
  3. VM이 생성되었는지 확인하려면 kubectl get 명령어를 사용합니다.

    kubectl get vm VM_NAME -n NAMESPACE
    

    예상 출력에 VM 상태가 표시됩니다. You can also use the kubectl describe 명령어를 사용하여 할당된 CPU 및 메모리를 포함한 세부 구성을 볼 수도 있습니다.

VM 유형 만들기 및 사용

GDC용 VM 런타임을 사용 설정하면 클러스터에서 VirtualMachineType 커스텀 리소스 정의를 사용할 수 있게 됩니다. 이 리소스 유형을 사용하여 특정 CPU 및 메모리 할당을 정의하는 재사용 가능한 템플릿을 만들 수 있습니다. 여러 워크로드에 대해 커스텀 VM 유형을 만들면 일관된 컴퓨팅 리소스 구성으로 여러 VM을 프로비저닝할 수 있습니다.

Distributed Cloud Connected에서 GDC용 VM 런타임을 사용 설정하면 사전 정의된 VM 유형을 사용할 수 있습니다. 이 사전 정의된 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 유형을 만들 수 있습니다.

  1. 선호하는 편집기에서 my-vm-type.yaml과 같은 VirtualMachineType 매니페스트를 만듭니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachineType
    metadata:
      name: VM_TYPE_NAME
    spec:
      cpu:
        vcpus: VCPU_NUMBER
      memory:
        capacity: MEMORY_SIZE

    이 VM 유형에서는 다음 설정을 정의합니다.

    • VM_TYPE_NAME: VM 유형의 이름입니다.
    • VCPU_NUMBER: VM에 할당할 vCPU 수입니다. 1~96개 사이의 vCPU를 VM에 할당할 수 있습니다.
    • MEMORY_SIZE: VM에 할당할 메모리 양입니다. 1Mi~1Ti 사이의 메모리를 VM에 할당할 수 있습니다. 자세한 내용은 Kubernetes 문서의 메모리 리소스 단위를 참고하세요.
  2. VM 유형을 만들려면 kubectl apply 명령어를 사용하여 Distributed Cloud Connected 클러스터에 매니페스트를 적용합니다.

    kubectl apply -f my-vm-type.yaml
    
  3. VM 유형이 생성되었는지 확인하려면 kubectl get 명령어를 실행합니다.

    kubectl get virtualmachinetype VM_TYPE_NAME
    

VM 유형을 사용하여 VM 만들기

VM 유형에 정의된 CPU 및 메모리 설정을 VM에 적용하려면 VirtualMachine 매니페스트의 compute 섹션에서 VM 유형의 이름을 지정합니다.

  1. 선호하는 편집기에서 my-custom-vm.yaml과 같은 VirtualMachine 매니페스트를 만듭니다. 이 YAML 파일에서 my-vm-type과 같이 이전 섹션에서 만든 커스텀 VM 유형의 이름을 virtualMachineTypeName의 값으로 지정합니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
      namespace: NAMESPACE
    spec:
      compute:
        virtualMachineTypeName: VM_TYPE_NAME
      interfaces:
        - name: eth0
          networkName: L2_NETWORK_NAME
          default: true
      disks:
        - virtualMachineDiskName: VM_BOOT_NAME-boot-dv
          boot: true

    다음 설정을 정의합니다.

    • VM_NAME: VM의 이름입니다.
    • NAMESPACE: VM의 대상 네임스페이스입니다.
    • L2_NETWORK_NAME: VM을 연결할 L2 네트워크의 이름입니다.
    • VM_TYPE_NAME: 이전 섹션에서 만든 커스텀 VM 유형의 이름(예: my-vm-type)입니다.
    • VM_BOOT_NAME: VM 부팅 디스크의 이름입니다. 부팅 디스크는 이미 있어야 합니다. 자세한 내용은 가상 머신 이미지에서 가상 머신 디스크 만들기를 참고하세요.

    VM은 eth0 인터페이스를 지정된 L2 네트워크에 연결합니다.

  2. VM을 만들려면 kubectl apply 명령어를 사용하여 Distributed Cloud Connected 클러스터에 매니페스트를 적용합니다.

    kubectl apply -f my-custom-vm.yaml
    
  3. VM이 VM 유형을 사용하고 있는지 확인하려면 kubectl get 명령어를 -o jsonpath 옵션과 함께 실행합니다.

    kubectl get vm VM_NAME -n NAMESPACE -o jsonpath='{.spec.compute.virtualMachineTypeName}'
    

    예상 출력에 VM 유형의 이름이 표시됩니다.

다음 단계