Anthos VM 런타임 사용 설정 또는 사용 중지

이 문서에서는 VMRuntime 커스텀 리소스를 업데이트하거나 bmctl 명령어를 실행하여 Anthos VM 런타임을 사용 설정 또는 사용 중지하는 방법을 보여줍니다.

시작하기 전에

Anthos VM 런타임을 사용 설정 또는 사용 중지하려면 다음 리소스 및 도구에 액세스할 수 있어야 합니다.

Anthos VM 런타임 사용 설정

Anthos VM 런타임은 베어메탈용 Anthos 클러스터 버전 1.10 이상에 자동으로 설치되지만 기본적으로 사용 중지되어 있습니다. 베어메탈용 Anthos 클러스터에서 VM 리소스를 실행할 수 있으려면 먼저 Anthos VM 런타임을 사용 설정해야 합니다.

bmctl

  • 런타임을 사용 설정하려면 bmctl 도구를 사용합니다.

    bmctl enable vmruntime --kubeconfig KUBECONFIG_PATH
    

    클러스터의 kubeconfig 파일 경로를 제공합니다. 클러스터를 만들면 베어메탈용 Anthos 클러스터가 관리자 워크스테이션에 kubeconfig 파일을 생성합니다. 기본적으로 경로는 bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig입니다.

    Anthos VM 런타임이 이미 사용 설정되어 있으면 명령어가 오류를 반환합니다.

에뮬레이션 또는 이미지 형식과 같은 추가 설정은 VMRuntime 커스텀 리소스를 수정하여 구성할 수 있습니다.

커스텀 리소스

런타임을 사용 설정하려면 VMRuntime 커스텀 리소스를 업데이트합니다. 이 커스텀 리소스는 기본적으로 설치되어 있습니다.

  1. VMRuntime 커스텀 리소스를 수정합니다.

    kubectl edit vmruntime
    
  2. 사양에서 enabled:true를 설정합니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: true
      # useEmulation defaults to "false" if not set.
      useEmulation: true
      # vmImageFormat defaults to "qcow2" if not set.
      vmImageFormat: qcow2
    

    앞의 spec 섹션에서 다음 값을 설정할 수 있습니다.

    • enabled: Anthos VM 런타임을 사용 설정하기 위해 true로 설정합니다.
    • useEmulation: 노드가 하드웨어 가상화를 지원하지 않거나 확실하지 않으면 값을 true로 설정합니다. 사용 가능한 경우 하드웨어 가상화에서 소프트웨어 에뮬레이션보다 우수한 성능을 제공합니다. useEmulation 필드가 지정되지 않으면 기본값은 false입니다.
    • vmImageFormat: 두 가지 디스크 이미지 형식 값인 rawqcow2를 지원합니다. vmImageFormat을 설정하지 않으면 Anthos VM 런타임에서 raw 디스크 이미지 형식을 사용하여 VM을 만듭니다. raw 형식은 쓰기 형식의 사본인 qcow2보다 우수한 성능을 제공할 수 있지만 더 많은 디스크를 사용할 수 있습니다. VM의 이미지 형식에 대한 자세한 내용은 QEMU 문서의 디스크 이미지 파일 형식을 참조하세요.
  3. 편집기에서 커스텀 리소스를 저장합니다.

  4. VMRuntime 커스텀 리소스가 사용 설정되었는지 확인합니다.

    kubectl describe vmruntime vmruntime
    

    VMRuntime 커스텀 리소스의 세부정보에는 Status 섹션이 포함됩니다. VMRuntime.Status.Readytrue로 표시되면 Anthos VM 런타임이 사용 설정되었고 작동 중입니다.

Anthos VM 런타임 사용 중지

Anthos VM 런타임을 더 이상 사용할 필요가 없으면 이 기능을 사용 중지할 수 있습니다.

bmctl

  • 런타임을 사용 중지하려면 bmctl 도구를 사용합니다.

    bmctl disable vmruntime --kubeconfig KUBECONFIG_PATH \
      --force=true
    

    클러스터에 대한 kubeconfig 파일 경로와 다음 구성 옵션에 대한 값을 제공합니다.

    • --force: 기존 VM 리소스 삭제를 확인하려면 true로 설정합니다. 기본값은 false입니다.

커스텀 리소스

런타임을 사용 중지하려면 VMRuntime 커스텀 리소스를 업데이트합니다.

  1. VMRuntime 커스텀 리소스를 수정합니다.

    kubectl edit vmruntime
    
  2. 사양에서 enabled:false를 설정합니다.

    apiVersion: vm.cluster.gke.io/v1`
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      enabled: false
      useEmulation: true
      vmImageFormat: qcow2
    
  3. 편집기에서 업데이트된 커스텀 리소스 사양을 저장합니다.

  4. VMRuntime 커스텀 리소스가 사용 중지되었는지 확인하려면 vm-system 네임스페이스에서 실행되는 포드를 확인합니다.

    kubectl get pods --namespace vm-system
    

    Anthos VM 런타임은 vmruntime-controller-manager 배포에 속하는 포드가 네임스페이스에서 실행되는 경우에만 사용 중지됩니다.

VM 실행 동작 이해

baremetal.cluster.gke.io/vmrumtime-force-disable 주석을 Anthos VM 런타임 리소스에서 사용하여 VM이 클러스터에서 실행되는 동안 런타임이 사용 중지되었을 때의 동작을 정의할 수 있습니다.

다음 예시는 이 주석의 값이 기본적으로 false로 설정된 것을 보여줍니다.

  // VM runtime yaml file
  apiVersion: vm.cluster.gke.io/v1
  kind: VMRuntime
  metadata:
    annotations:
      baremetal.cluster.gke.io/vmrumtime-force-disable: "false"
    name: vmruntime
  [...]

이 주석이 false로 설정되었으면 Anthos VM 런타임이 실행 중인 VM을 보호하려고 시도합니다. Anthos VM 런타임이 사용 중지되기 전 실행 중인 모든 VM을 삭제하거나 이전 섹션에 표시된 것처럼 bmctl disable vmruntime 명령어로 --force=true 매개변수를 지정합니다.

다음 표에서는 주석이 true 또는 false로 설정되었을 때 그리고 --force=true 매개변수를 지정하는지 여부에 따라 실행 중인 VM에 발생하는 결과를 설명합니다.

클러스터 상태 --force 매개변수 vmrumtime-force-disable 주석 동작
VM 없음 해당 없음 해당 없음 Anthos VM 런타임을 사용 중지합니다.
기존 VM True True 실행 중인 모든 VM 및 관련 리소스를 삭제합니다. Anthos VM 런타임을 사용 중지합니다.
True False 실행 중인 모든 VM 및 관련 리소스를 삭제합니다. Anthos VM 런타임을 사용 중지합니다.
False True 실행 중인 VM 및 관련 리소스를 삭제하라는 메시지가 표시됩니다. 실행 중인 모든 VM이 삭제되었으면 Anthos VM 런타임을 사용 중지합니다.
False False 실행 중인 기존 VM을 삭제하지 않습니다. Anthos VM 런타임을 사용 중지하지 않습니다. bmctl 명령어가 오류를 반환합니다.

다음 단계