このドキュメントでは、Anthos VM ランタイムを使用して ISO から起動する Windows 仮想マシン(VM)の作成方法について説明します。VM が起動したら、Windows 設定作業を手動で行います。
また、HTTP ソースを使用するか、Cloud Storage から、準備したディスク イメージで Windows VM を作成することもできます。
始める前に
このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。
- Anthos clusters on bare metal バージョン 1.12.0(
anthosBareMetalVersion: 1.12.0
)以降のクラスタへのアクセス権。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine の Anthos clusters on bare metal を試すか、クラスタ作成の概要をご覧ください。 kubectl
のプラグインとしてインストールされたvirtctl
クライアント ツール。必要に応じて、virtctl クライアント ツールをインストールします。
ISO イメージの仮想ディスクを作成する
Windows VM を作成するには、このドキュメントの手順と各セクションを順に実施してください。
Windows ISO イメージから起動するには、まず diskType
が cdrom
の VirtualMachineDisk
を作成します。このディスクのソースには Windows ISO を使用します。
任意のエディタで、
VirtualMachineDisk
マニフェスト(windows-iso.yaml
など)を作成します。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
ドライバにアクセスできる必要があります。virtio
ドライバを VM に提供するには、次の手順を行います。
任意のエディタで、
VirtualMachineDisk
マニフェスト(virtio-driver.yaml
など)を作成します。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
ドライバを pull し、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 に付ける名前に置き換えます。このマニフェストによって、100 ギビバイト(GiB)のブート ボリュームが作成されます。このブート ボリュームは空のため、VM の起動時に CD-ROM デバイスとして ISO から起動され、セットアップ処理が開始されます。
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 のインストールが完了したら、virtio
ドライバのディスクと Windows ISO イメージを VM から削除します。
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 の起動に十分なコンピューティング リソースがホストにあることを確認します。