Anthos VM 런타임에서 VM 구성 수정

이 문서에서는 베어메탈용 Anthos 클러스터를 실행하는 애플리케이션 소유자를 대상으로 합니다. 이 문서에서는 Anthos VM 런타임을 사용하여 실행되는 가상 머신(VM)을 수정하는 방법을 보여줍니다. 예를 들어 CPU 및 메모리와 같은 리소스 할당을 수정하거나 VM이 연결되는 네트워크를 변경할 수 있습니다.

VirtualMachine 리소스의 spec 섹션에서 모든 필드를 수정할 수 있습니다. VM의 라벨을 수정할 수도 있습니다. VM 이름(metadata.name)과 같은 다른 필드는 수정할 수 없습니다. 리소스를 수정하기 전에 VM은 Stopped 상태여야 합니다.

VirtualMachine 리소스 수정을 저장할 때 오류가 포함된 경우 변경사항이 거부되고 알림이 표시됩니다. 오류를 수정하고 VirtualMachine 리소스를 다시 저장합니다. 변경 후 VM이 시작되지 않으면 kubectl describe gvm VM_NAME 명령어를 사용하여 문제 해결 정보를 확인하고 오류를 수정합니다.

시작하기 전에

이 문서를 완료하려면 다음 리소스에 대해 액세스 권한이 필요합니다.

컴퓨팅 리소스 수정

컴퓨팅 워크로드를 요구사항이 변경되면 VM에 할당하는 가상 CPU 수와 가상 메모리 양을 업데이트할 수 있습니다. 컴퓨팅 워크로드를 수정하려면 다음 단계를 완료합니다.

  1. 수정하려는 VM을 중지합니다.

    kubectl virt stop VM_NAME
    

    VM_NAME을 중지하려는 VM의 이름으로 바꿉니다.

  2. kubectl을 사용하여 VM을 수정합니다.

    kubectl edit gvm VM_NAME
    

    VM_NAME을 수정하려는 VM의 이름으로 바꿉니다.

  3. 편집기에서 변경하려는 컴퓨팅 리소스 값을 업데이트합니다.

    예를 들어 다음 샘플 VirtualMachine 매니페스트는 VM 리소스에 할당된 vCPU가 2개임을 보여줍니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 2
    ...
    

    할당된 vCPU 수를 업데이트하려면 다음 예시와 같이 편집기에서 값을 변경합니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      compute:
        cpu:
          vcpus: 4
    ...
    
  4. VM 매니페스트를 저장하고 닫습니다.

  5. 수정한 VM을 시작합니다.

    kubectl virt start VM_NAME
    

    VM_NAME을 수정한 VM의 이름으로 바꿉니다.

  6. VM의 STATUS를 확인합니다.

    kubectl get gvm VM_NAME
    

    VM이 Running 상태인지 확인합니다. VM이 호스트가 제공할 수 있는 것보다 많은 컴퓨팅 리소스를 요청하는 경우 VM을 시작할 수 없습니다. VM이 Running 상태가 아니면 VirtualMachine 리소스 매니페스트와 호스트의 컴퓨팅 리소스 가용성을 확인합니다.

    다음 출력 예시는 Running 상태의 VM을 보여줍니다.

    NAME   STATUS    AGE   IP
    vm1    Running   1m    192.168.2.72
    
  7. kubectl describe gvm을 사용하여 VM에 대한 자세한 정보를 봅니다.

    kubectl describe gvm VM_NAME
    

    VM_NAME을 수정한 VM의 이름으로 바꿉니다.

    다음 출력 예시는 성공적으로 적용된 vCPU 수의 변경을 포함하여 VM에 대한 요약 정보를 보여줍니다.

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
        Cpu:
          Vcpus:  4
    ...
    

자세한 내용은 특정 vCPU 및 메모리 컴퓨팅 구성으로 VM을 만드는 방법을 참조하세요.

디스크 리소스 수정

스토리지 요구사항이 변경되면 VM에 가상 디스크를 추가하거나 삭제할 수 있습니다. VM에 연결된 디스크를 수정하려면 다음 단계를 완료합니다.

  1. 수정하려는 VM을 중지합니다.

    kubectl virt stop VM_NAME
    

    VM_NAME을 중지하려는 VM의 이름으로 바꿉니다.

  2. kubectl을 사용하여 VM을 수정합니다.

    kubectl edit gvm VM_NAME
    

    VM_NAME을 수정하려는 VM의 이름으로 바꿉니다.

  3. 편집기에서 spec.disks 섹션을 업데이트하여 디스크를 연결하거나 분리합니다.

    예를 들어 다음 샘플 VirtualMachine 매니페스트는 부팅 디스크만 VM에 연결되어 있음을 보여줍니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
      ...
    

    기존의 빈 디스크를 추가하려면 다음 예시와 같이 편집기에서 디스크 구성을 업데이트합니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      disks:
        - boot: true
          virtualMachineDiskName: vm1-boot-dv
        - virtualMachineDiskName: DISK_NAME
      ...
    

    DISK_NAME을 연결할 디스크의 이름으로 바꿉니다.

  4. VM 매니페스트를 저장하고 닫습니다.

  5. 수정한 VM을 시작합니다.

    kubectl virt start VM_NAME
    

    VM_NAME을 수정한 VM의 이름으로 바꿉니다.

  6. VM의 STATUS를 확인합니다.

    kubectl get gvm VM_NAME
    

    VM이 Running 상태인지 확인합니다. VM이 호스트가 제공할 수 없는 StorageClass 또는 디스크 할당을 요청하면 VM을 시작할 수 없습니다. VM이 Running 상태가 아니면 VirtualMachineVirtualMachineDisk 리소스 매니페스트와 호스트 스토리지 지원을 확인합니다.

  7. kubectl describe gvm을 사용하여 VM에 대한 자세한 정보를 봅니다.

    kubectl describe gvm VM_NAME
    

    VM_NAME을 수정한 VM의 이름으로 바꿉니다.

    다음 출력 예시는 연결된 디스크의 변경사항이 성공적으로 적용된 VM에 대한 요약 정보를 보여줍니다.

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Disks:
        Name:  vm1-boot-dv
        Name:  data-disk-01
    ...
    

자세한 내용은 디스크 만들기 및 관리 방법을 참조하세요.

네트워크 리소스 수정

인프라가 변경되면 VM의 네트워크 구성을 변경해야 할 수 있습니다. 예를 들어 VM을 다른 가상 네트워크에 연결하거나 IP 주소를 수동으로 할당할 수 있습니다. VM의 네트워크 구성을 수정하려면 다음 단계를 완료합니다.

  1. 수정하려는 VM을 중지합니다.

    kubectl virt stop VM_NAME
    

    VM_NAME을 중지하려는 VM의 이름으로 바꿉니다.

  2. kubectl을 사용하여 VM을 수정합니다.

    kubectl edit gvm VM_NAME
    

    VM_NAME을 수정하려는 VM의 이름으로 바꿉니다.

  3. 편집기에서 변경하려는 네트워크 구성 설정을 업데이트합니다.

    예를 들어 다음 샘플 VirtualMachine 매니페스트는 VM이 backend-vlan100이라는 네트워크에 연결하고 IP 주소가 정의되어 있지 않으므로 DHCP를 사용하는 것을 보여줍니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: backend-vlan100
          default: true
    ...
    

    VM이 연결되는 네트워크를 변경하거나 수동 IP 주소를 할당하려면 다음 예시와 같이 편집기에서 네트워크 구성을 업데이트합니다.

    apiVersion: vm.cluster.gke.io/v1
    kind: VirtualMachine
    metadata:
      name: vm1
    spec:
      ...
      interfaces:
        - name: eth0
          networkName: NETWORK_NAME
            ipAddresses:
              - IP_ADDRESS
          default: true
    ...
    

    NETWORK_NAME을 연결할 네트워크의 이름으로 바꾸거나 ipAddresses 섹션을 추가하고 VM에서 사용할 IP_ADDRESS를 지정합니다.

  4. VM 매니페스트를 저장하고 닫습니다.

  5. 수정한 VM을 시작합니다.

    kubectl virt start VM_NAME
    

    VM_NAME을 수정한 VM의 이름으로 바꿉니다.

  6. VM의 STATUS를 확인합니다.

    kubectl get gvm VM_NAME
    

    VM이 Running 상태인지 확인합니다. VM이 호스트가 제공할 수 없는 네트워크 연결을 요청하면 VM은 시작할 수 없습니다. VM이 Running 상태가 아니면 VirtualMachine 리소스 매니페스트와 호스트 네트워크 지원을 확인합니다.

  7. kubectl describe gvm을 사용하여 VM에 대한 자세한 정보를 봅니다.

    kubectl describe gvm VM_NAME
    

    VM_NAME을 수정한 VM의 이름으로 바꿉니다.

    다음 예시 출력은 네트워크 및 IP 주소 구성 변경사항이 성공적으로 적용된 VM에 대한 요약 정보를 보여줍니다.

    Name:         vm1
    Namespace:    default
    Labels:       <none>
    Annotations:  <none>
    API Version:  vm.cluster.gke.io/v1
    Kind:         VirtualMachine
    ...
    Spec:
      Compute:
      Interfaces:
        Name:          eth0
        Network Name:  backend-vlan200
    ...
    Status:
      ...
      Interfaces:
        Dns Config:
          Nameservers:
            8.8.8.8
        gateway4:  10.200.0.9
        Ip Addresses:
          10.200.0.22/24
        Mac Address:    22:b4:e3:d2:ef:fb
        Name:           eth0
        Resource Name:  vm1-eth0-f2468
    ...
    

자세한 내용은 가상 네트워크 만들기 및 관리 방법을 참조하세요.

다음 단계