이 문서에서는 Anthos VM 런타임을 사용하여 ISO에서 부팅하는 Windows 가상 머신(VM)을 만드는 방법을 보여줍니다. VM이 부팅되면 수동으로 Windows 설정 루틴을 완료합니다.
HTTP 소스를 사용하거나 Cloud Storage에서 준비된 디스크 이미지에서 Windows VM을 만들 수도 있습니다.
시작하기 전에
이 문서를 완료하려면 다음 리소스에 대해 액세스 권한이 필요합니다.
- 베어메탈용 Anthos 클러스터 버전 1.12.0(
anthosBareMetalVersion: 1.12.0
) 이상 클러스터에 대한 액세스 권한. 워크로드 실행이 가능한 모든 클러스터 유형을 사용할 수 있습니다. 필요한 경우 Compute Engine에서 베어메탈용 Anthos 클러스터를 사용하거나 클러스터 만들기 개요를 참조하세요. kubectl
의 플러그인으로 설치되는virtctl
클라이언트 도구. 필요한 경우 virtctl 클라이언트 도구를 설치합니다.
ISO 이미지의 가상 디스크 만들기
Windows VM을 성공적으로 만들려면 이 문서의 단계와 섹션을 순서대로 따르세요.
Windows ISO 이미지에서 부팅하려면 먼저 diskType
이 cdrom
인 VirtualMachineDisk
를 만듭니다. Windows ISO를 이 디스크의 소스로 사용합니다.
원하는 편집기에서
windows-iso.yaml
과 같은VirtualMachineDisk
매니페스트를 만듭니다.nano windows-iso.yaml
다음 YAML 매니페스트를 복사하여 붙여넣습니다.
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-iso spec: source: http: url: IMG_URL size: 10Gi diskType: cdrom
IMG_URL
을 Windows ISO의 HTTP 경로로 바꿉니다. 사용자 인증 정보를 만들고 사용하여 Cloud Storage에서 ISO를 가져올 수도 있습니다.편집기에서 매니페스트를 저장하고 닫습니다.
kubectl
을 사용하여VirtualMachineDisk
를 만듭니다.kubectl apply -f windows-iso.yaml
VM 드라이버 디스크 만들기
Windows ISO에서 부팅하고 설치 프로세스를 완료하려면 VM이 virtio
드라이버에 액세스해야 합니다. VM에 virtio
드라이버를 제공하려면 다음 단계를 완료합니다.
원하는 편집기에서
virtio-driver.yaml
과 같은VirtualMachineDisk
매니페스트를 만듭니다.nano virtio-driver.yaml
다음 YAML 매니페스트를 복사하여 붙여넣습니다.
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: virtio-driver spec: size: 1Gi source: registry: url: docker://quay.io/kubevirt/virtio-container-disk:latest diskType: cdrom
이 매니페스트는 공개 Docker 저장소에서 최신
virtio
드라이버를 가져오고diskType
을cdrom
으로 설정합니다. 설치 프로세스 중에 VM에서 이 디스크를 사용합니다.편집기에서 매니페스트를 저장하고 닫습니다.
kubectl
을 사용하여VirtualMachineDisk
를 만듭니다.kubectl apply -f virtio-driver.yaml
Windows VM 만들기
Windows ISO VirtualMachineDisk
에서 부팅되고 virtio
드라이버 디스크를 연결하는 VM을 만듭니다.
원하는 편집기에서 부팅 볼륨의
VirtualMachineDisk
와VirtualMachine
(예:windows-vm.yaml
)을 정의하는 매니페스트를 만듭니다.nano windows-vm.yaml
다음 YAML 매니페스트를 복사하여 붙여넣습니다.
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: VM_NAME-boot-dv spec: size: 100Gi --- apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: osType: Windows disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true - virtualMachineDiskName: windows-iso - virtualMachineDiskName: virtio-driver interfaces: - name: eth0 networkName: pod-network
VM_NAME
을 VM에 사용할 이름으로 바꿉니다.이 매니페스트는 100GiB(기비바이트) 부팅 볼륨을 만듭니다. VM이 처음 시작될 때 이 부팅 볼륨이 비어 있으므로 VM이 ISO에서 CD-ROM 기기로 부팅하여 설정 루틴을 시작합니다. 설치 프로세스를 완료하기 위해
virtio
드라이버도 연결됩니다.편집기에서 매니페스트를 저장하고 닫습니다.
kubectl
을 사용하여VirtualMachineDisk
및VirtualMachine
을 만듭니다.kubectl apply -f windows-vm.yaml
Windows VM에 연결하고 OS 설치 완료
VM이 이전 섹션의 Windows ISO에서 시작되고 부팅됩니다. VM에 연결하고 Windows 설치 프로세스를 완료하고 VM을 구성합니다.
Windows VM에 연결합니다.
kubectl virt vnc VM_NAME
VM_NAME
을 Windows VM 이름으로 바꿉니다.Windows 설정에서 커스텀 설치를 수행합니다.
로드 드라이버를 선택하고
virtio
디스크의 viostor 디렉터리를 찾은 후 원하는 Windows 버전과 일치하는 디렉터리를 선택합니다.자세한 내용은 KubeVirt Windows
virtio
드라이버를 참조하세요.이제
virtio
의 스토리지 및 네트워크 드라이버를 사용할 수 있게 되면 나머지 Windows 설치 프로세스를 완료합니다.설치 후 VM에 직접 연결할 수 있도록 원격 데스크톱 프로토콜을 사용 설정하는 것이 좋습니다.
ISO 이미지 및 드라이버 디스크 분리
Windows 설치가 완료되면 VM에서 virtio
드라이버 디스크 및 Windows ISO 이미지를 삭제합니다.
Windows VM을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME
을 Windows VM 이름으로 바꿉니다.kubectl
을 사용하여 VM을 수정합니다.kubectl edit gvm VM_NAME
VM_NAME
을 Windows VM 이름으로 바꿉니다.다음 예시와 같이 편집기에서
spec.disks
섹션을 업데이트하여 Windows ISO 및virtio
디스크를 삭제합니다. VM에 연결된 유일한 디스크는VM_NAME-boot-dv
여야 합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: windows-vm spec: osType: Windows disks: - virtualMachineDiskName: windows-vm-boot-dv boot: true interfaces: ...
VM 매니페스트를 저장하고 닫습니다.
Windows VM을 시작합니다.
kubectl virt start VM_NAME
VM_NAME
을 Windows VM 이름으로 바꿉니다.VM의
STATUS
를 확인합니다.kubectl get gvm VM_NAME
VM_NAME
을 Windows VM 이름으로 바꿉니다.VM이
Running
상태인지 확인합니다. VM이Running
상태가 아니면VirtualMachine
리소스 매니페스트를 확인하여 Windows ISO 및virtio
디스크만 제거했는지 확인합니다. 호스트에 VM을 시작하기에 충분한 컴퓨팅 리소스가 있는지 확인합니다.