이 페이지에서는 Google Distributed Cloud Connected에서 Google Distributed Cloud의 VM 런타임을 실행하는 가상 머신을 관리하는 방법을 설명합니다. 이 페이지의 단계를 완료하기 전에 GDC의 VM 런타임을 숙지해야 합니다. 지원되는 게스트 운영체제 목록은 GDC용 VM 런타임에 검증된 게스트 운영체제를 참고하세요.
가상 머신이 Distributed Cloud 연결 플랫폼의 필수 구성요소로 작동하는 방법을 알아보려면 온프레미스 에지 VM을 관리하기 위해 GKE Enterprise 확장을 참고하세요.
로컬 컨트롤 플레인 클러스터는 가상 머신 웹훅을 지원합니다. 이를 통해 연결된 Distributed Cloud가 로컬 Kubernetes API 서버에 대한 사용자 요청을 검증할 수 있습니다. 거부된 요청은 거부 사유에 관한 자세한 정보를 생성합니다.
Distributed Cloud Connected에서 GDC의 VM 런타임 지원 사용 설정
기본적으로 Distributed Cloud Connected에서는 GDC 가상 머신 지원의 VM 런타임이 사용 중지되어 있습니다. 이 기능을 사용 설정하려면 이 섹션의 단계를 완료하세요. 이 섹션의 안내에서는 완전히 작동하는 Distributed Cloud 연결 클러스터가 있다고 가정합니다.
분산 클라우드에 연결된 GDC의 VM 런타임을 구성하는 VMRuntime 리소스는 enableGPU 매개변수를 사용하여 클러스터에서 GPU 지원도 구성합니다. 워크로드 요구사항에 따라 두 매개변수를 구성해야 합니다. Distributed Cloud 연결 클러스터에서 GDC용 VM 런타임 지원을 사용 설정하기 위해 GPU 지원을 사용 설정할 필요는 없습니다.
다음 표에서는 사용 가능한 구성을 설명합니다.
enable 값 |
enableGPU 값 |
결과 구성 |
|---|---|---|
false |
false |
워크로드는 컨테이너에서만 실행되며 GPU 리소스를 사용할 수 없습니다. |
false |
true |
워크로드는 컨테이너에서만 실행되며 GPU 리소스를 사용할 수 있습니다. |
true |
true |
워크로드는 가상 머신과 컨테이너에서 실행할 수 있습니다. 두 유형의 워크로드 모두 GPU 리소스를 사용할 수 있습니다. |
true |
false |
워크로드는 가상 머신과 컨테이너에서 실행할 수 있습니다. 두 유형의 워크로드 모두 GPU 리소스를 사용할 수 없습니다. |
GPU 지원을 이미 사용 설정한 경우 VMRuntime 리소스를 수정하여 enable 매개변수를 추가하고 값을 true로 설정한 다음 Distributed Cloud 클러스터에 적용합니다.
GDC 가상 머신 하위 시스템에서 VM 런타임 사용 설정
GDC 가상 머신 하위 시스템에서 VM 런타임을 사용 설정하려는 클러스터의 유형에 따라 다음 중 하나를 수행합니다.
- Cloud 컨트롤 플레인 클러스터의 경우
VMRuntime리소스를 수동으로 만들어야 합니다. - 로컬 제어 영역 클러스터의 경우 기존
VMRuntime리소스를 수정해야 합니다.
GDC 가상 머신 하위 시스템에서 VM 런타임을 사용 설정하려면 다음 단계를 완료하세요.
타겟 클러스터 유형에 따라 다음 콘텐츠로
VMRuntime커스텀 리소스를 만들거나 수정하고 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: # Enable Anthos VM Runtime support enabled: true # vmImageFormat defaults to "raw" if not set vmImageFormat: "raw"
vmImageFormat매개변수의 값을 변경하지 마세요. Distributed Cloud Connected는 다른 가상 디스크 형식을 지원하지 않습니다.이 프로세스를 완료하는 데 일반적으로 몇 분 정도 걸립니다.
다음 명령어를 사용하여
VMRuntime커스텀 리소스가 클러스터에 적용되었는지 확인합니다.kubectl get vmruntime -o yaml
이 명령어는 다음 예와 유사한 출력을 반환합니다.
- apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime ... spec: enabled: true vmImageFormat: raw status: ... ready: true ...다음 명령어를 사용하여 클러스터에서 GDC용 VM 런타임 가상 머신 지원이 사용 설정되었는지 확인합니다.
kubectl get pods -n vm-system
이 명령어는 다음 예와 같이 클러스터에서 실행되는 GDC 하위 시스템 포드의 VM 런타임을 보여주는 출력을 반환합니다.
NAME READY STATUS RESTARTS AGE cdi-apiserver-6c76c6cf7b-n68wn 1/1 Running 0 132m cdi-deployment-f78fd599-vj7tv 1/1 Running 0 132m cdi-operator-65c4df9647-fcb9d 1/1 Running 0 134m cdi-uploadproxy-7765ffb694-6j7bf 1/1 Running 0 132m macvtap-fjfjr 1/1 Running 0 134m virt-api-77dd99dbbb-bs2fb 1/1 Running 0 132m virt-api-77dd99dbbb-pqc27 1/1 Running 0 132m virt-controller-5b44dbbbd7-hc222 1/1 Running 0 132m virt-controller-5b44dbbbd7-p8xkk 1/1 Running 0 132m virt-handler-n76fs 1/1 Running 0 132m virt-operator-86565697d9-fpxqh 2/2 Running 0 134m virt-operator-86565697d9-jnbt7 2/2 Running 0 134m vm-controller-controller-manager-7844d5fb7b-72d8m 2/2 Running 0 134m vmruntime-controller-manager-845649c847-m78r9 2/2 Running 0 175m
대상 네임스페이스에 연결된 Distributed Cloud 레지스트리에 대한 액세스 권한 부여
이 섹션의 단계는 클라우드 컨트롤 플레인 클러스터에만 적용됩니다. 로컬 컨트롤 플레인 클러스터에서 GDC 가상 머신 하위 시스템의 VM 런타임을 구성하는 경우 이 섹션을 건너뛰세요.
네임스페이스에서 가상 머신을 만들려면 먼저 Distributed Cloud 연결 레지스트리에 대한 액세스 권한을 해당 네임스페이스에 부여해야 합니다. 레지스트리에는 대상 네임스페이스에서 가상 머신을 만들고 배포하는 데 필요한 구성요소가 있습니다. 분산 클라우드 연결 시스템 관리를 위해 예약된 네임스페이스에서는 가상 머신을 실행할 수 없습니다. 자세한 내용은 관리 네임스페이스 제한사항을 참고하세요.
다음 단계를 완료하여 타겟 네임스페이스에 Distributed Cloud 연결 레지스트리에 대한 액세스 권한을 부여합니다.
gcr-pull라는 이름의imagePullSecret키를 사용하여 타겟 네임스페이스의 기본 서비스 계정을 패치합니다.kubectl patch sa default -p "{\"imagePullSecrets\": [{\"name\": \"gcr-pull\"}]}" -n NAMESPACE
NAMESPACE을 대상 네임스페이스의 이름으로 바꿉니다.타겟 네임스페이스에서 연결된 보안 비밀을 새로고침합니다.
# Delete existing secret. kubectl delete secret gcr-pull -n NAMESPACE --ignore-not-found # Copy the new secret to the target namespace. kubectl get secret gcr-pull -n vm-system -o yaml | sed "s/namespace: vm-system/namespace: NAMESPACE/g" | kubectl apply -f -
NAMESPACE을 대상 네임스페이스의 이름으로 바꿉니다.보안 비밀은 1시간 후에 만료됩니다. 만료된 후에는 수동으로 새로고침해야 합니다.
virtctl 관리 도구 설치
분산 클라우드 연결 클러스터에서 가상 머신을 관리하려면 virtctl 클라이언트 도구가 필요합니다. 도구를 설치하려면 다음 단계를 완료하세요.
virtctl클라이언트 도구를kubectl플러그인으로 설치합니다.export VERSION=v0.49.0-anthos1.12-gke.7 gcloud storage cp gs://anthos-baremetal-release/virtctl/${VERSION}/linux-amd64/virtctl /usr/local/bin/virtctl cd /usr/local/bin sudo ln -s virtctl kubectl-virt sudo chmod a+x virtctl cd -
virt플러그인이 설치되었는지 확인합니다.kubectl plugin list
플러그인이 성공적으로 설치되면 명령어의 출력에
kubectl-virt이 플러그인 중 하나로 나열됩니다.
원시 블록 스토리지를 사용하여 Distributed Cloud Connected에 가상 머신 프로비저닝
이 섹션에서는 원시 블록 스토리지가 있는 Distributed Cloud 연결 클러스터에서 Linux 가상 머신과 Windows 가상 머신을 프로비저닝하는 방법을 보여주는 구성 예를 제공합니다. 예시에서는 PersistentVolume로 인스턴스화된 블록 스토리지를 사용합니다.
원시 블록 스토리지 사용 제한사항
Distributed Cloud Connected에서 원시 블록 스토리지를 사용하여 가상 머신을 실행할 때는 다음 제한사항이 적용됩니다.
OSType필드는 Cloud 컨트롤 플레인 클러스터의VirtualMachine리소스 사양에서 지원되지 않습니다. 따라서 Cloud 컨트롤 플레인 클러스터에서 실행되는 가상 머신에 액세스하는 데는console및vnc메서드만 지원됩니다.- Distributed Cloud Connected는 가상 머신에 파일 시스템 스토리지를 제공하지 않으므로
kubectl virt명령어를 사용하여 Distributed Cloud Connected 클러스터에 직접 가상 머신을 만들 수 없습니다. - 블록 스토리지
PersistentVolumeClaim리소스는qcow2디스크 이미지 형식을 지원하지 않습니다. - 컨테이너화된 데이터 가져오기 도구 (CDI) 플러그인은 플러그인의 스크래치 공간이 파일 시스템 스토리지에서만 작동하므로 블록 스토리지의
DataVolume리소스를 지원하지 않습니다. 자세한 내용은 스크래치 공간을 참고하세요.
원시 블록 스토리지를 사용하여 Distributed Cloud connected에 Linux 가상 머신 프로비저닝
다음 예시에서는 Ubuntu Server 22.04를 실행하는 원시 블록 스토리지가 있는 Linux 가상 머신을 프로비저닝하는 방법을 보여줍니다. 설치 소스는 Ubuntu Server 22.04 ISO 디스크 이미지입니다.
Ubuntu Server 설치 디스크 이미지에 대해 다음 콘텐츠로
PersistentVolumeClaim리소스를 만든 후 클러스터에 적용합니다.apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app: containerized-data-importer name: iso-ubuntu annotations: cdi.kubevirt.io/storage.import.endpoint: "https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso" spec: accessModes: - ReadWriteOnce storageClassName: local-block volumeMode: Block resources: requests: storage: 5Gi
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
PersistentVolumeClaim리소스를 만든 다음 클러스터에 적용합니다.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ubuntuhd spec: accessModes: - ReadWriteOnce resources: requests: storage: 15Gi storageClassName: local-block volumeMode: Block
Ubuntu Server 설치 디스크 이미지에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "ubuntu-iso-disk" spec: persistentVolumeClaimName: iso-ubuntu diskType: cdrom
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "ubuntu-main-disk" spec: persistentVolumeClaimName: ubuntuhd
가상 머신의 구성을 지정하는 다음 콘텐츠로
VirtualMachineType리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
다음 콘텐츠를 사용하여
VirtualMachine리소스를 만들어 클러스터에서 가상 머신을 인스턴스화하고 시작한 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: ubu-vm name: ubu-vm # Propagate the virtual machine name to the VMI spec: osType: Linux compute: virtualMachineTypeName: small-2-20 interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: ubuntu-main-disk boot: true - virtualMachineDiskName: ubuntu-iso-disk
osType필드는 로컬 컨트롤 플레인 클러스터에만 적용됩니다. 다음 기능을 구성하려면 로컬 컨트롤 플레인 클러스터에서 필요합니다.가상 머신에 Ubuntu Server를 설치합니다.
importer포드가 Ubuntu Server 설치 디스크 이미지를 다운로드할 때까지 기다립니다.가상 머신의 상태를 확인합니다.
kubectl get gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신에 로그온합니다.
kubectl virt vnc VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.Ubuntu Linux 설치 단계를 완료합니다.
삭제:
가상 머신을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신의 YAML 파일을 수정하여 설치 디스크 이미지에 대한 참조를 삭제합니다.
kubectl edit gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신을 시작합니다.
kubectl virt start VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.설치 디스크 이미지의
VirtualMachineDisk및PersistentVolumeClaim리소스를 삭제합니다.kubectl delete virtualmachinedisk ubuntu-iso-disk kubectl delete pvc iso-ubuntu
원시 블록 스토리지가 연결된 Distributed Cloud에 Windows 가상 머신 프로비저닝
다음 예에서는 원시 블록 스토리지를 사용하여 Windows 가상 머신을 프로비저닝하는 방법을 보여줍니다. 이 단계는 Windows를 설치하는 데 필요한 virtio 드라이버 디스크 이미지를 추가하는 것을 제외하고 Linux 가상 머신을 프로비저닝하는 것과 유사합니다.
라이선스가 부여된 Windows 사본과 설치 미디어 이미지를 획득합니다.
Windows 설치 디스크 이미지에 대해 다음 콘텐츠를 사용하여
PersistentVolumeClaim리소스를 만든 다음 클러스터에 적용합니다. 자세한 내용은 이미지에서를 참고하세요.virtio드라이버에 다음 콘텐츠가 포함된PersistentVolumeClaim리소스를 만든 다음 클러스터에 적용합니다.apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app: containerized-data-importer name: virtio-driver annotations: cdi.kubevirt.io/storage.import.endpoint: "https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso" spec: accessModes: - ReadWriteOnce storageClassName: local-block volumeMode: Block resources: requests: storage: 1Gi
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
PersistentVolumeClaim리소스를 만든 다음 클러스터에 적용합니다.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: windowshd spec: accessModes: - ReadWriteOnce resources: requests: storage: 15Gi storageClassName: local-block volumeMode: Block
Windows 설치 디스크 이미지에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "windows-iso-disk" spec: persistentVolumeClaimName: iso-windows diskType: cdrom
virtio드라이버에 다음 콘텐츠가 포함된VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "win-virtio-driver" spec: persistentVolumeClaimName: virtio-driver diskType: cdrom
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "windows-main-disk" spec: persistentVolumeClaimName: windowshd
가상 머신의 구성을 지정하는 다음 콘텐츠로
VirtualMachineType리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
다음 콘텐츠로
VirtualMachine리소스를 만들어 클러스터에서 가상 머신을 인스턴스화하고 시작한 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: win-vm name: win-vm # Propagate the virtual machine name to the VMI spec: osType: Windows compute: virtualMachineTypeName: my-vmt interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: windows-main-disk boot: true - virtualMachineDiskName: windows-iso-disk - virtualMachineDiskName: win-virtio-driver
osType필드는 로컬 컨트롤 플레인 클러스터에만 적용됩니다. 다음 기능을 구성하려면 로컬 컨트롤 플레인 클러스터에서 필요합니다.가상 머신에 Windows를 설치합니다.
importer포드가 Windows 설치 디스크 이미지를 다운로드할 때까지 기다립니다.가상 머신의 상태를 확인합니다.
kubectl get gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는win-vm)으로 바꿉니다.Windows VM에 연결 및 OS 설치 완료의 단계에 따라 Windows 설치를 완료합니다.
삭제:
가상 머신을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는win-vm)으로 바꿉니다.ISO 이미지 및 드라이버 디스크 분리의 단계를 완료합니다.
Symcloud Storage를 사용하여 Distributed Cloud connected에 가상 머신 프로비저닝
이 섹션에서는 Symcloud Storage 추상화 레이어를 사용하여 Distributed Cloud 연결 클러스터에 Linux 가상 머신과 Windows 가상 머신을 프로비저닝하는 방법을 보여주는 구성 예를 제공합니다.
이 섹션의 단계를 완료하기 전에 먼저 Symcloud Storage용 Distributed Cloud Connected 구성의 단계를 완료해야 합니다. 나중에 클러스터에서 Symcloud Storage를 사용 중지하면 Symcloud Storage를 사용하도록 구성된 가상 머신이 실패합니다.
Symcloud Storage와 연결된 Distributed Cloud에 Linux 가상 머신 프로비저닝
다음 예에서는 Ubuntu Server 22.04를 실행하는 Symcloud Storage로 Linux 가상 머신을 프로비저닝하는 방법을 보여줍니다. 설치 소스는 Ubuntu Server 22.04 ISO 디스크 이미지입니다.
Ubuntu Server 설치 디스크 이미지에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: ubuntu-iso-disk spec: size: 20Gi storageClassName: robin diskType: cdrom source: http: url: https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "ubuntu-main-disk" spec: size: 200Gi storageClassName: robin
가상 머신의 구성을 지정하는 다음 콘텐츠로
VirtualMachineType리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
다음 콘텐츠를 사용하여
VirtualMachine리소스를 만들어 클러스터에서 가상 머신을 인스턴스화하고 시작한 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: ubu-vm name: ubu-vm # Propagate the virtual machine name to the VMI spec: osType: Linux compute: virtualMachineTypeName: small-2-20 interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: ubuntu-main-disk boot: true - virtualMachineDiskName: ubuntu-iso-disk
osType필드는 로컬 컨트롤 플레인 클러스터에만 적용됩니다. 다음 기능을 구성하려면 로컬 컨트롤 플레인 클러스터에서 필요합니다.가상 머신에 Ubuntu Server를 설치합니다.
importer포드가 Ubuntu Server 설치 디스크 이미지를 다운로드할 때까지 기다립니다.가상 머신의 상태를 확인합니다.
kubectl get gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신에 로그온합니다.
kubectl virt vnc VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.Ubuntu Linux 설치 단계를 완료합니다.
삭제:
가상 머신을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신의 YAML 파일을 수정하여 설치 디스크 이미지에 대한 참조를 삭제합니다.
kubectl edit gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신을 시작합니다.
kubectl virt start VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.설치 디스크 이미지의
VirtualMachineDisk리소스를 삭제합니다.kubectl delete virtualmachinedisk ubuntu-iso-disk
Symcloud Storage와 연결된 Distributed Cloud에 Windows 가상 머신 프로비저닝
다음 예에서는 Symcloud Storage로 Windows 가상 머신을 프로비저닝하는 방법을 보여줍니다. 이 단계는 Windows를 설치하는 데 필요한 virtio 드라이버 디스크 이미지를 추가하는 것을 제외하고 Linux 가상 머신을 프로비저닝하는 것과 유사합니다.
라이선스가 부여된 Windows 사본과 설치 미디어 이미지를 획득합니다.
Windows 설치 디스크 이미지에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-iso-disk namespace: default spec: size: 5Gi storageClassName: robin diskType: cdrom source: http: url: WINDOWS_ISO_URL
NAT_GATEWAY을 대상 Windows 설치 ISO 디스크 이미지의 전체 URL로 바꿉니다.virtio드라이버에 다음 콘텐츠가 포함된VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-virtio-driver namespace: default spec: size: 1Gi storageClassName: robin diskType: cdrom source: http: url: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-main-disk namespace: default spec: size: 15Gi storageClassName: robin
가상 머신의 구성을 지정하는 다음 콘텐츠로
VirtualMachineType리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
다음 콘텐츠로
VirtualMachine리소스를 만들어 클러스터에서 가상 머신을 인스턴스화하고 시작한 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: win-vm name: win-vm # Propagate the virtual machine name to the VMI spec: osType: Windows compute: virtualMachineTypeName: my-vmt interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: windows-main-disk boot: true - virtualMachineDiskName: windows-iso-disk - virtualMachineDiskName: win-virtio-driver
osType필드는 로컬 컨트롤 플레인 클러스터에만 적용됩니다. 다음 기능을 구성하려면 로컬 컨트롤 플레인 클러스터에서 필요합니다.가상 머신에 Windows를 설치합니다.
importer포드가 Windows 설치 디스크 이미지를 다운로드할 때까지 기다립니다.가상 머신의 상태를 확인합니다.
kubectl get gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는win-vm)으로 바꿉니다.Windows VM에 연결 및 OS 설치 완료의 단계에 따라 Windows 설치를 완료합니다.
삭제:
가상 머신을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는win-vm)으로 바꿉니다.ISO 이미지 및 드라이버 디스크 분리의 단계를 완료합니다.
virtctl를 사용하여 Distributed Cloud Connected에 가상 머신 프로비저닝
가상 머신에 자체 리소스 사양을 작성하여 제공되는 맞춤설정이 필요하지 않은 경우 VM 만들기에 설명된 대로 virtctl 명령줄 도구를 사용하여 Distributed Cloud에 가상 머신을 프로비저닝할 수 있습니다.
Distributed Cloud(연결형)에서 실행되는 가상 머신 관리
Distributed Cloud connected에서 실행되는 가상 머신 관리에 관한 안내는 다음 GDC용 VM 런타임 문서를 참고하세요.
로컬 제어 영역 클러스터에서 실행되는 가상 머신을 관리하려면 먼저 kubectl 연결을 구성해야 합니다.
Linux 가상 머신에 대한 직렬 콘솔 액세스를 위해 ttyS0 기기 구성
직렬 콘솔(kubectl virt console)을 사용하여 Linux 가상 머신에 액세스하려면 게스트 운영체제에서 ttyS0 직렬 콘솔 기기가 구성되어 있는지 확인하세요. 이 기기를 구성하려면 다음 단계를 완료하세요.
시스템에서
ttyS0직렬 기기를 인스턴스화합니다.setserial -g /dev/ttyS0
/etc/default/grub구성 파일에 다음 줄을 추가하여ttyS0직렬 기기를 사용하도록grub부트로더를 구성합니다. 첫 번째 줄은 기존GRUB_CMDLINE_LINUX변수를 대체합니다.GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,19200n8' GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
새
grub구성을 부트 섹터에 적용합니다.update-grub
가상 머신을 다시 시작합니다.
Distributed Cloud Connected의 GDC에서 VM 런타임 사용 중지
이 섹션의 단계에 따라 Distributed Cloud Connected에서 GDC의 VM 런타임을 사용 중지합니다. Distributed Cloud(연결형)에서 GDC의 VM 런타임을 사용 중지하려면 VM 삭제에 설명된 대로 Distributed Cloud(연결형) 클러스터의 모든 가상 머신을 중지하고 삭제해야 합니다.
Distributed Cloud Connected의 GDC에서 VM 런타임을 사용 중지하려면 enabled 사양 매개변수를 다음과 같이 false로 설정하여 VMRuntime 커스텀 리소스를 수정한 후 클러스터에 적용합니다.
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: # Disable Anthos VM Runtime enabled: false # vmImageFormat defaults to "raw" if not set vmImageFormat: "raw"