9.15.6. 仮想マシンの PXE ブートの設定


PXE ブートまたはネットワークブートは OpenShift Virtualization で利用できます。ネットワークブートにより、ローカルに割り当てられたストレージデバイスなしにコンピューターを起動し、オペレーティングシステムまたは他のプログラムを起動し、ロードすることができます。たとえば、これにより、新規ホストのデプロイ時に PXE サーバーから必要な OS イメージを選択できます。

9.15.6.1. MAC アドレスを指定した PXE ブート

まず、管理者は PXE ネットワークの NetworkAttachmentDefinition オブジェクトを作成し、ネットワーク経由でクライアントを起動できます。次に、仮想マシンインスタンスの設定ファイルで network attachment definition を参照して仮想マシンインスタンスを起動します。また PXE サーバーで必要な場合には、仮想マシンインスタンスの設定ファイルで MAC アドレスを指定することもできます。

前提条件

  • Linux ブリッジが接続されている。
  • PXE サーバーがブリッジとして同じ VLAN に接続されている。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. クラスターに PXE ネットワークを設定します。

    1. PXE ネットワーク pxe-net-conf の network attachment definition ファイルを作成します。

      apiVersion: "k8s.cni.cncf.io/v1"
      kind: NetworkAttachmentDefinition
      metadata:
        name: pxe-net-conf
      spec:
        config: |
          {
            "cniVersion": "0.3.1",
            "name": "pxe-net-conf",
            "type": "bridge",
            "bridge": "bridge-interface",
            "macspoofchk": false,
            "vlan": 100,
            "disableContainerInterface": true,
            "preserveDefaultVlan": false
          }
      • metadata.name は、NetworkAttachmentDefinition オブジェクトの名前を指定します。
      • spec.config.name は、設定の名前を指定します。設定名を network attachment definition の name 値に一致させることが推奨されます。
      • spec.config.type は、このネットワークアタッチメント定義にネットワークを提供する Container Network Interface (CNI) プラグインの実際の名前を指定します。この例では、Linux bridge CNI プラグインを使用します。OVN-Kubernetes localnet または SR-IOV CNI プラグインを使用することもできます。
      • spec.config.bridge は、ノード上で設定されている Linux ブリッジの名前を指定します。
      • spec.config.macspoofchk は、MAC スプーフィングチェックを有効にするためのオプションのフラグです。true に設定すると、Pod またはゲストインターフェイスの MAC アドレスを変更できません。この属性により、Pod から出ることができる MAC アドレスは 1 つだけになり、MAC スプーフィング攻撃に対するセキュリティーが確保されます。
      • spec.config.vlan は、オプションの VLAN タグです。Node Network Configuration Policy では、追加の VLAN 設定は必要ありません。
      • spec.config.preserveDefaultVlan は、仮想マシンがデフォルト VLAN を介してブリッジに接続するかどうかを示すオプションのフラグです。デフォルト値は true です。
  2. 直前の手順で作成したファイルを使用して network attachment definition を作成します。

    $ oc create -f pxe-net-conf.yaml
  3. 仮想マシンインスタンス設定ファイルを、インターフェイスおよびネットワークの詳細を含めるように編集します。

    1. PXE サーバーで必要な場合には、ネットワークおよび MAC アドレスを指定します。MAC アドレスが指定されていない場合、値は自動的に割り当てられます。

      bootOrder1 に設定されており、インターフェイスが最初に起動することを確認します。この例では、インターフェイスは <pxe-net> というネットワークに接続されています。

      interfaces:
      - masquerade: {}
        name: default
      - bridge: {}
        name: pxe-net
        macAddress: de:00:00:00:00:de
        bootOrder: 1
      注記

      複数のインターフェイスおよびディスクのブートの順序はグローバル順序になります。

    2. オペレーティングシステムのプロビジョニング後に起動が適切に実行されるよう、ブートデバイス番号をディスクに割り当てます。

      ディスク bootOrder の値を 2 に設定します。

      devices:
        disks:
        - disk:
            bus: virtio
          name: containerdisk
          bootOrder: 2
    3. 直前に作成された network attachment definition に接続されるネットワークを指定します。このシナリオでは、<pxe-net><pxe-net-conf> という network attachment definition に接続されます。

      networks:
      - name: default
        pod: {}
      - name: pxe-net
        multus:
          networkName: pxe-net-conf
  4. 仮想マシンインスタンスを作成します。

    $ oc create -f vmi-pxe-boot.yaml

    出力例

      virtualmachineinstance.kubevirt.io "vmi-pxe-boot" created

  5. 仮想マシンインスタンスの実行を待機します。

    $ oc get vmi vmi-pxe-boot -o yaml | grep -i phase
      phase: Running
  6. VNC を使用して仮想マシンインスタンスを表示します。

    $ virtctl vnc vmi-pxe-boot
  7. ブート画面で、PXE ブートが正常に実行されていることを確認します。
  8. 仮想マシンインスタンスにログインします。

    $ virtctl console vmi-pxe-boot

検証

  1. 仮想マシンのインターフェイスおよび MAC アドレスを確認し、ブリッジに接続されたインターフェイスに MAC アドレスが指定されていることを確認します。この場合、PXE ブートには IP アドレスなしに eth1 を使用しています。他のインターフェイス eth0 は OpenShift Container Platform から IP アドレスを取得しています。

    $ ip addr

    出力例

    ...
    3. eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
       link/ether de:00:00:00:00:de brd ff:ff:ff:ff:ff:ff

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る