如果您打算以 KVM 作為傳輸節點,或作為 NSX ManagerNSX Controller 客體虛擬機器的主機,但您尚未設定 KVM,您可以使用此處說明的程序來設定。

備註:

Geneve 封裝通訊協定會使用 UDP 連接埠 6081。您必須在 KVM 主機上的防火牆中允許此連接埠存取。

程序

  1. (僅限 Red Hat) 開啟 /etc/yum.conf 檔案。
  2. 搜尋行 exclude
  3. 新增行 "kernel* redhat-release*" 來設定 yum,以避免任何不支援的 RHEL 升級。

    exclude=[existing list] kernel* redhat-release*

    如果您計劃執行具有特定相容性需求的 NSX-T Container Plug-in,請同時排除容器相關模組。

    exclude=[existing list] kernel* redhat-release* kubelet-* kubeadm-* kubectl-* docker-*

    支援的 RHEL 版本為 7.4。

  4. 安裝 KVM 和橋接器公用程式。

    Linux 發行版

    命令

    Ubuntu

    apt-get install -y qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virtinst virt-manager virt-viewer libguestfs-tools

    RHEL

    yum groupinstall "Virtualization Hypervisor"
    yum groupinstall "Virtualization Client"
    yum groupinstall "Virtualization Platform"
    yum groupinstall "Virtualization Tools"
  5. 檢查硬體虛擬化功能。
    cat /proc/cpuinfo | egrep "vmx|svm"

    輸出應包含 vmx。

  6. 確認已安裝 KVM 模組。

    Linux 發行版

    命令

    Ubuntu

    kvm-ok
    
    INFO: /dev/kvm exists
    KVM acceleration can be used

    RHEL

    lsmod | grep kvm
    
    kvm_intel              53484  6
    kvm                   316506  1 kvm_intel
  7. 若要讓 KVM 用作 NSX ManagerNSX Controller 的主機,請準備橋接網路、管理介面和 NIC 介面。

    在下列範例中,第一個乙太網路介面 (eth0 或 ens32) 會用於 Linux 機器本身的連線。此介面可能會使用 DHCP 或靜態 IP 設定,視您的部署環境而定。將上行介面指派給 NSX-T 主機之前,請確保供這些上行使用的介面指令碼已進行設定。如果沒有系統上的這些介面檔案,便無法成功建立主機傳輸節點。

    備註:

    介面名稱在不同的環境中可能會有所不同。

    Linux 發行版

    網路組態

    Ubuntu

    編輯 /etc/network/interfaces

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet manual
    
    auto br0
    iface br0 inet static
        address 192.168.110.51
        netmask 255.255.255.0
        network 192.168.110.0
        broadcast 192.168.110.255
        gateway 192.168.110.1
        dns-nameservers 192.168.3.45
        dns-search example.com
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
    
    

    建立橋接器的網路定義 xml 檔案。例如,請使用下列命令列建立 /tmp/bridge.xml

    <network>
      <name>bridge</name>
      <forward mode='bridge'/>
      <bridge name='br0'/>
    </network>
    
    

    使用下列命令定義並啟動橋接器網路:

    virsh net-define 
    bridge.xml
    virsh net-start bridge
    virsh net-autostart bridge
    
    

    您可以使用下列命令檢查橋接器網路的狀態:

    virsh net-list --all
    
    Name                 State      Autostart     Persistent
    ----------------------------------------------------------
    bridge               active     yes           yes
    default              active     yes           yes

    RHEL

    編輯 /etc/sysconfig/network-scripts/ifcfg-management_interface

      DEVICE="ens32"
      TYPE="Ethernet"
      NAME="ens32"
      UUID="<UUID>"
      BOOTPROTO="none"
      HWADDR="<HWADDR>"
      ONBOOT="yes"
      NM_CONTROLLED="no"
      BRIDGE="br0"
    
    

    編輯 /etc/sysconfig/network-scripts/ifcfg-eth1

      DEVICE="eth1"
      TYPE="Ethernet"
      NAME="eth1"
      UUID="<UUID>"
      BOOTPROTO="none"
      HWADDR="<HWADDR>"
      ONBOOT="yes"
      NM_CONTROLLED="no"
    

    編輯 /etc/sysconfig/network-scripts/ifcfg-eth2

      DEVICE="eth2"
      TYPE="Ethernet"
      NAME="eth2"
      UUID="<UUID>"
      BOOTPROTO="none"
      HWADDR="<HWADDR>"
      ONBOOT="yes"
      NM_CONTROLLED="no"
    

    編輯 /etc/sysconfig/network-scripts/ifcfg-br0

       DEVICE="br0"
       BOOTPROTO="dhcp"
       NM_CONTROLLED="no"
       ONBOOT="yes"
       TYPE="Bridge"
  8. 針對要用作傳輸節點的 KVM 準備網路橋接器。

    在下列範例中,第一個乙太網路介面 (eth0 或 ens32) 會用於 Linux 機器本身的連線。此介面可能會使用 DHCP 或靜態 IP 設定,視您的部署環境而定。

    備註:

    介面名稱在不同的環境中可能會有所不同。

    Linux 發行版

    網路組態

    Ubuntu

    編輯 /etc/network/interfaces

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet manual
    
    auto eth1
    iface eth1 inet manual
    
    auto br0
    iface br0 inet dhcp
      bridge_ports eth0
    

    RHEL

    編輯 /etc/sysconfig/network-scripts/ifcfg-ens32

    DEVICE="ens32"
      TYPE="Ethernet"
      NAME="ens32"
      UUID="<something>"
      BOOTPROTO="none"
      HWADDR="<something>"
      ONBOOT="yes"
      NM_CONTROLLED="no"
      BRIDGE="br0"
    
    

    編輯 /etc/sysconfig/network-scripts/ifcfg-ens33

    DEVICE="ens33"
      TYPE="Ethernet"
      NAME="ens33"
      UUID="<something>"
      BOOTPROTO="none"
      HWADDR="<something>"
      ONBOOT="yes"
      NM_CONTROLLED="no"
    
    

    編輯 /etc/sysconfig/network-scripts/ifcfg-br0

    DEVICE="br0"
       BOOTPROTO="dhcp"
       NM_CONTROLLED="no"
       ONBOOT="yes"
       TYPE="Bridge"
    重要:

    在 Ubuntu 上,所有網路組態皆必須在 /etc/network/interfaces 中指定。請勿建立個別的網路組態檔 (例如 /etc/network/ifcfg-eth1),這可能會導致傳輸節點建立失敗。

    執行此步驟後,一旦 KVM 主機設定為傳輸節點,即會建立橋接器介面「nsx-vtep0.0」。在 Ubuntu 中,/etc/network/interfaces 會包含下列項目:

    iface nsx-vtep0.0 inet static
    pre-up ip addr flush dev nsx-vtep0.0
    address <IP_pool_address>
    netmask <subnet_mask>
    mtu 1600
    down ifconfig nsx-vtep0.0 down
    up ifconfig nsx-vtep0.0 up

    在 RHEL 中,主機 NSX 代理程式 (nsxa) 會建立名為 ifcfg-nsx-vtep0.0 的組態檔,其中包含下列項目:

    DEVICE=nsx-vtep0.0
    BOOTPROTO=static
    NETMASK=<IP address>
    IPADDR=<subnet mask>
    MTU=1600
    ONBOOT=yes
    USERCTL=no
    NM_CONTROLLED=no
    
  9. 若要讓網路變更生效,請重新啟動網路服務 systemctl restart network,或將 Linux 伺服器重新開機。