2.10. 为虚拟机使用默认 Pod 网络
您可以将默认 Pod 网络用于容器原生虚拟化。为此,您必须使用 masquerade
绑定方法。这是用于默认 Pod 网络的唯一推荐绑定方法。不要将 masquerade
模式用于非默认网络。
对于辅助网络,请使用 bridge
绑定方法。
2.10.1. 从命令行配置伪装模式
您可使用伪装模式将虚拟机的外发流量隐藏在 Pod IP 地址后。伪装模式使用网络地址转换 (NAT) 来通过 Linux 网桥将虚拟机连接至 Pod 网络后端。
启用伪装模式,并通过编辑虚拟机配置文件让流量进入虚拟机。
先决条件
- 虚拟机必须配置为使用 DHCP 来获取 IPv4 地址。以下示例配置为使用 DHCP。
2.10.2. 选择绑定方法
如果从容器原生虚拟化 web 控制台向导创建虚拟机,请从 Networking 屏幕选择所需绑定方法。
2.10.2.1. 网络字段
名称 | 描述 |
---|---|
Create NIC | 为虚拟机创建新 NIC。 |
NIC NAME | NIC 的名称。 |
MAC ADDRESS | 网络接口的 MAC 地址。如果未指定 MAC 地址,将为会话生成一个临时地址。 |
NETWORK CONFIGURATION | 可用 NetworkAttachmentDefinition 对象列表。 |
BINDING METHOD |
可用绑定方法列表。对于默认的 Pod 网络, |
PXE NIC |
支持 PXE 的网络列表。只有在将 |
2.10.3. 默认网络的虚拟机配置示例
2.10.3.1. 模板:虚拟机配置文件
apiVersion: kubevirt.io/v1alpha3 kind: VirtualMachine metadata: name: example-vm namespace: default spec: running: false template: spec: domain: devices: disks: - name: containerdisk disk: bus: virtio - name: cloudinitdisk disk: bus: virtio interfaces: - masquerade: {} name: default resources: requests: memory: 1024M networks: - name: default pod: {} volumes: - name: containerdisk containerDisk: image: kubevirt/fedora-cloud-container-disk-demo - name: cloudinitdisk cloudInitNoCloud: userData: | #!/bin/bash echo "fedora" | passwd fedora --stdin
2.10.3.2. 模板:Windows 虚拟机实例配置文件
apiVersion: kubevirt.io/v1alpha3 kind: VirtualMachineInstance metadata: labels: special: vmi-windows name: vmi-windows spec: domain: clock: timer: hpet: present: false hyperv: {} pit: tickPolicy: delay rtc: tickPolicy: catchup utc: {} cpu: cores: 2 devices: disks: - disk: bus: sata name: pvcdisk interfaces: - masquerade: {} model: e1000 name: default features: acpi: {} apic: {} hyperv: relaxed: {} spinlocks: spinlocks: 8191 vapic: {} firmware: uuid: 5d307ca9-b3ef-428c-8861-06e72d69f223 machine: type: q35 resources: requests: memory: 2Gi networks: - name: default pod: {} terminationGracePeriodSeconds: 0 volumes: - name: pvcdisk persistentVolumeClaim: claimName: disk-windows