Anthos clusters on bare metal の ISO イメージから Windows VM を作成する

このドキュメントでは、Anthos VM ランタイムを使用して ISO から起動する Windows 仮想マシン(VM)の作成方法について説明します。VM が起動したら、Windows 設定作業を手動で行います。

また、HTTP ソースを使用するか、Cloud Storage から、準備したディスク イメージで Windows VM を作成することもできます。

始める前に

このドキュメントの内容を実施するには、次のリソースへのアクセス権が必要です。

ISO イメージの仮想ディスクを作成する

Windows VM を作成するには、このドキュメントの手順と各セクションを順に実施してください。

Windows ISO イメージから起動するには、まず diskTypecdromVirtualMachineDisk を作成します。このディスクのソースには Windows ISO を使用します。

  1. 任意のエディタで、VirtualMachineDisk マニフェスト(windows-iso.yaml など)を作成します。

    nano windows-iso.yaml
    
  2. 次の 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 をインポートするために認証情報を作成して使用することもできます。

  3. マニフェストをエディタに保存して閉じます。

  4. kubectl を使用して VirtualMachineDisk を作成します。

    kubectl apply -f windows-iso.yaml
    

VM ドライバのディスクを作成する

Windows ISO から正常に起動してインストール プロセスを完了するには、VM が virtio ドライバにアクセスできる必要があります。virtio ドライバを VM に提供するには、次の手順を行います。

  1. 任意のエディタで、VirtualMachineDisk マニフェスト(virtio-driver.yaml など)を作成します。

    nano virtio-driver.yaml
    
  2. 次の 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 し、diskTypecdrom に設定します。VM は、このディスクをインストール プロセス中に使用します。

  3. マニフェストをエディタに保存して閉じます。

  4. kubectl を使用して VirtualMachineDisk を作成します。

    kubectl apply -f virtio-driver.yaml
    

Windows VM を作成する

Windows ISO VirtualMachineDisk から起動し、virtio ドライバ ディスクをアタッチする VM を作成します。

  1. 任意のエディタで、ブート ボリュームの VirtualMachineDisk と、VirtualMachine を定義するマニフェスト(windows-vm.yaml など)を作成します。

    nano windows-vm.yaml
    
  2. 次の 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 ドライバもアタッチされ、インストール プロセスが完了します。

  3. マニフェストをエディタに保存して閉じます。

  4. kubectl を使用して VirtualMachineDiskVirtualMachine を作成します。

    kubectl apply -f windows-vm.yaml
    

Windows VM に接続し、OS のインストールを完了する

VM が起動し、前のセクションの Windows ISO から起動します。VM に接続し、Windows のインストール プロセスを完了して VM を構成します。

  1. Windows VM に接続します。

    kubectl virt vnc VM_NAME
    

    VM_NAME は、Windows VM の名前に置き換えます。

  2. Windows セットアップで、[カスタム インストール] を選択します。

  3. [ドライバの読み込み] を選択し、virtio ディスクの viostor ディレクトリを参照して、インストールする Windows のバージョンと一致するディレクトリを選択します。

    詳細については、KubeVirt Windows virtio ドライバをご覧ください。

  4. virtio のストレージ ドライバとネットワーク ドライバが利用可能になったら、残りの Windows インストール プロセスを完了します。

    インストール後に VM に直接接続できるように、リモート デスクトップ プロトコルを有効にすることをおすすめします。

ISO イメージとドライバ ディスクを切断する

Windows のインストールが完了したら、virtio ドライバのディスクと Windows ISO イメージを VM から削除します。

  1. Windows VM を停止します。

    kubectl virt stop VM_NAME
    

    VM_NAME は、Windows VM の名前に置き換えます。

  2. kubectl を使用して VM を編集します。

    kubectl edit gvm VM_NAME
    

    VM_NAME は、Windows VM の名前に置き換えます。

  3. 次の例に示すように、エディタで 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:
    ...
    
  4. VM マニフェストを保存して閉じます。

  5. Windows VM を起動します。

    kubectl virt start VM_NAME
    

    VM_NAME は、Windows VM の名前に置き換えます。

  6. VM の STATUS を確認します。

    kubectl get gvm VM_NAME
    

    VM_NAME は、Windows VM の名前に置き換えます。

    VM が Running 状態になっていることを確認します。VM が Running 状態でない場合は、VirtualMachine リソース マニフェストを確認して、Windows ISO ディスクと virtio ディスクのみが削除されたことを確認します。VM の起動に十分なコンピューティング リソースがホストにあることを確認します。

次のステップ