이 문서에서는 베어메탈용 Anthos 클러스터를 실행하는 애플리케이션 소유자를 대상으로 합니다. 이 문서에서는 Anthos VM 런타임을 사용하여 실행되는 가상 머신(VM)을 수정하는 방법을 보여줍니다. 예를 들어 CPU 및 메모리와 같은 리소스 할당을 수정하거나 VM이 연결되는 네트워크를 변경할 수 있습니다.
VirtualMachine
리소스의 spec
섹션에서 모든 필드를 수정할 수 있습니다.
VM의 라벨을 수정할 수도 있습니다. VM 이름(metadata.name
)과 같은 다른 필드는 수정할 수 없습니다. 리소스를 수정하기 전에 VM은 Stopped
상태여야 합니다.
VirtualMachine
리소스 수정을 저장할 때 오류가 포함된 경우 변경사항이 거부되고 알림이 표시됩니다. 오류를 수정하고 VirtualMachine
리소스를 다시 저장합니다. 변경 후 VM이 시작되지 않으면 kubectl describe gvm VM_NAME
명령어를 사용하여 문제 해결 정보를 확인하고 오류를 수정합니다.
시작하기 전에
이 문서를 완료하려면 다음 리소스에 대해 액세스 권한이 필요합니다.
- 클러스터 중 하나에서 실행되는 VM. 필요한 경우 베어메탈용 Anthos 클러스터에 VM을 만듭니다.
kubectl
의 플러그인으로 설치되는virtctl
클라이언트 도구. 필요한 경우 virtctl 클라이언트 도구를 설치합니다.
컴퓨팅 리소스 수정
컴퓨팅 워크로드를 요구사항이 변경되면 VM에 할당하는 가상 CPU 수와 가상 메모리 양을 업데이트할 수 있습니다. 컴퓨팅 워크로드를 수정하려면 다음 단계를 완료합니다.
수정하려는 VM을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME
을 중지하려는 VM의 이름으로 바꿉니다.kubectl
을 사용하여 VM을 수정합니다.kubectl edit gvm VM_NAME
VM_NAME
을 수정하려는 VM의 이름으로 바꿉니다.편집기에서 변경하려는 컴퓨팅 리소스 값을 업데이트합니다.
예를 들어 다음 샘플
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 ...
VM 매니페스트를 저장하고 닫습니다.
수정한 VM을 시작합니다.
kubectl virt start VM_NAME
VM_NAME
을 수정한 VM의 이름으로 바꿉니다.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
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에 연결된 디스크를 수정하려면 다음 단계를 완료합니다.
수정하려는 VM을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME
을 중지하려는 VM의 이름으로 바꿉니다.kubectl
을 사용하여 VM을 수정합니다.kubectl edit gvm VM_NAME
VM_NAME
을 수정하려는 VM의 이름으로 바꿉니다.편집기에서
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
을 연결할 디스크의 이름으로 바꿉니다.VM 매니페스트를 저장하고 닫습니다.
수정한 VM을 시작합니다.
kubectl virt start VM_NAME
VM_NAME
을 수정한 VM의 이름으로 바꿉니다.VM의
STATUS
를 확인합니다.kubectl get gvm VM_NAME
VM이
Running
상태인지 확인합니다. VM이 호스트가 제공할 수 없는StorageClass
또는 디스크 할당을 요청하면 VM을 시작할 수 없습니다. VM이Running
상태가 아니면VirtualMachine
및VirtualMachineDisk
리소스 매니페스트와 호스트 스토리지 지원을 확인합니다.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의 네트워크 구성을 수정하려면 다음 단계를 완료합니다.
수정하려는 VM을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME
을 중지하려는 VM의 이름으로 바꿉니다.kubectl
을 사용하여 VM을 수정합니다.kubectl edit gvm VM_NAME
VM_NAME
을 수정하려는 VM의 이름으로 바꿉니다.편집기에서 변경하려는 네트워크 구성 설정을 업데이트합니다.
예를 들어 다음 샘플
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
를 지정합니다.VM 매니페스트를 저장하고 닫습니다.
수정한 VM을 시작합니다.
kubectl virt start VM_NAME
VM_NAME
을 수정한 VM의 이름으로 바꿉니다.VM의
STATUS
를 확인합니다.kubectl get gvm VM_NAME
VM이
Running
상태인지 확인합니다. VM이 호스트가 제공할 수 없는 네트워크 연결을 요청하면 VM은 시작할 수 없습니다. VM이Running
상태가 아니면VirtualMachine
리소스 매니페스트와 호스트 네트워크 지원을 확인합니다.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 ...
자세한 내용은 가상 네트워크 만들기 및 관리 방법을 참조하세요.