共用方式為


準備 AKS Edge Essentials 的巢狀虛擬化環境

本文說明如何設定巢狀虛擬化環境,以部署 Azure Kubernetes Service (AKS) Edge Essentials 叢集。

注意

支援在 VMware ESXi 上的巢狀虛擬化環境之上部署 AKS Edge Essentials。 生產案例不支援其他巢狀虛擬化部署,而且僅限於開發人員用途。 本指南假設您使用 Hyper-V Hypervisor。 我們不支援使用非Microsoft Hypervisor,例如 KVM。

必要條件

在 Windows VM on VMware ESXi 上部署

VMware ESXi 7.08.0 版本可以在 Windows 虛擬機上裝載 AKS Edge Essentials。

若要在 VMware ESXi Windows 虛擬機上設定 AKS Edge Essentials,請使用下列步驟:

  1. 在 VMware ESXi 主機上建立 Windows 虛擬機器。 如需 VMware VM 部署的詳細資訊,請參閱 VMware - 部署虛擬機器

注意

如果您要建立 Windows 11 虛擬機,請確定它符合執行 Windows 11 Microsoft的最低需求。 如需 Windows 11 VM VMware 支援的詳細資訊,請參閱在 VMware 上安裝 Windows 11 作為客體作業系統

  1. 關閉在先前步驟中建立的虛擬機器。
  2. 選取 Windows 虛擬機器,然後選取 [編輯設定]
  3. 搜尋硬體虛擬化,然後開啟 [向客體作業系統公開硬體輔助虛擬化]
  4. 選取 [儲存] 並啟動虛擬機器。
  5. 安裝 Hyper-V Hypervisor。 如果您使用 Windows 用戶端,請確定在 Windows 10 上安裝 Hyper-V。 如果您使用 Windows Server,請確定您安裝 Hyper-V 角色

在 Azure 虛擬機上部署

如果您在 Azure VM 之上執行 AKS Edge Essentials,請確定您使用支援巢狀虛擬化的 Azure 計算單位 (ACU)。 如需詳細資訊,請參閱 Azure 計算單位(ACU)。 此外,Azure VM 不支援使用外部虛擬交換器,因此 VM 主機 OS 上的 AKS Edge Essentials 部署僅限於單一電腦叢集。

部署環境

本節描述巢狀架構,並醒目提示所需的主要元件和組態。 本文稍後所述的虛擬化層級如下:

  • L0 主機操作系統:Windows 主機作業系統。 此 OS 可以執行裸機或作為虛擬機,但在本文中, L0 主機 OS 是建立巢狀 Windows L1 VM 的 OS
  • L1 虛擬機:在 L0 Windows 主機 OS 上執行的 Windows VM。 此 VM 有 AKS Edge Essentials 安裝。
  • L2 虛擬機:在 L1 Windows 虛擬機上執行的 AKS Edge Essentials 巢狀 VM(Linux 或 Windows)。

您可以使用內部或外部虛擬交換器來設定巢狀環境。 不過,本文假設您使用的是內部虛擬交換器。 L0 Windows 機器和 L1/L2 虛擬機的 IP 位址可能會根據網路案例而變更。 本文假設您使用的是 172.20.1.0/24 IP 位址系列。

此外,部署 AKS Edge Essentials Windows 節點是選擇性的,而且會影響您指派的記憶體需求。 本文說明僅限 Linux 的部署,但您可以將適當的設定新增至部署 JSON 檔案,以新增 Windows 節點。

提示

如果您使用外部虛擬交換器進行部署,請確定您使用正確的網路適配器和IP位址配置。

顯示巢狀虛擬化架構的圖表。

上圖顯示這個巢狀架構的不同虛擬機和元件。

裝置/VM OS 層級 上層 記憶體 IP 位址
Windows 主機 OS Windows L0 - 32/64 GB 172.20.1.1
Windows-VM-1 Windows L1 Windows 主機 OS 8/16 GB 172.20.1.2
Windows-VM-2 Windows L1 Windows 主機 OS 8/16 GB 172.20.1.3
AKS-Edge-Linux-VM-1 CBL-Mariner L2 Windows-VM-1 4 GB 172.20.1.4
AKS-Edge-Windows-VM-1 (選用) Windows L2 Windows-VM-1 4 GB 172.20.1.5
AKS-Edge-Linux-VM-2 CBL-Mariner L2 Windows-VM-2 4 GB 172.20.1.6
AKS-Edge-Windows-VM-2 (選用) Windows L2 Windows-VM-2 4 GB 172.20.1.7

設定巢狀虛擬機

下列指南是IP位址配置的範例。 您可以根據您的網路環境和需求使用自己的配置。 也建議虛擬機和虛擬硬體指派的命名慣例,但您可以使用自己的設定。

  1. 開啟提升權限的 PowerShell 工作階段。

  2. 建立內部虛擬交換器:

    New-VMSwitch -Name "AKS-Int" -SwitchType Internal
    

    如果您正確建立交換器,您應該會看到類似下列輸出的內容:

    Name    SwitchType NetAdapterInterfaceDescription
    ----    ---------- ------------------------------
    AKS-Int Internal
    
  3. 將IP位址指派給 AKS-Int 虛擬交換器。 此範例使用 172.20.1.0/24 網路。 Windows 主機 OS使用此虛擬交換器 IP 位址與其他虛擬機和 AKS Edge Essentials 節點通訊:

    $ifIndex = (Get-NetAdapter -Name "vEthernet (AKS-Int)").ifIndex
    New-NetIPAddress –IPAddress "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    
  4. 建立 NAT 數據表,以連接內部虛擬交換器和內部網路連線裝置與外部/因特網網路:

     New-NetNat -Name "AKS-EE-Int-Network" -InternalIPInterfaceAddressPrefix "172.20.1.0/24"
    
  5. 使用 Hyper-V 管理員,建立第一部 Windows 虛擬機,並將它命名為 Windows-VM-1。 如需虛擬機建立的詳細資訊,請參閱 Windows Server 虛擬化。 在 VM 設定期間,請確定您已正確設定下列參數:

    • 處理器:虛擬處理器數目:4
    • 記憶體:RAM:8192 MB
    • 網路適配器:虛擬交換器:AKS-Int
  6. Windows 安裝和設定完成時,請關閉您的 Windows-VM-1 虛擬機。

  7. 啟用 Windows-VM-1巢狀虛擬化。 如需巢狀虛擬化的詳細資訊,請參閱 使用巢狀虛擬化在虛擬機中執行 Hyper-V:

    Set-VMProcessor -VMName <windows-vm-name> -ExposeVirtualizationExtensions $true
    
  8. 啟用 Windows-VM-1MAC 詐騙:

    Get-VMNetworkAdapter -VMName <windows-vm-name> | Set-VMNetworkAdapter -MacAddressSpoofing On
    
  9. 開啟 Windows-VM-1 虛擬機,並使用 [Hyper-V 連線] 選項進行連線

  10. Windows-VM-1 虛擬機內,開啟提升許可權的 PowerShell 會話。

  11. 檢查連線到虛擬機的適配卡。 尋找連接的乙太網路卡<名稱> 例如, 乙太網路 2

    ipconfig
    

    您應該會看到類似下面的輸出:

    PS C:\Windows\system32> ipconfig
    
    Windows IP Configuration
    
    Ethernet adapter Ethernet 2:
    
       Connection-specific DNS Suffix  . : mshome.net
       Link-local IPv6 Address . . . . . : fe80::f4b3:63b3:20d0:2e60%12
       Autoconfiguration IPv4 Address. . : 169.254.233.233
       Subnet Mask . . . . . . . . . . . : 255.255.0.0
       Default Gateway . . . . . . . . . :
    
    Ethernet adapter vEthernet (Default Switch):
    
       Connection-specific DNS Suffix  . :
       Link-local IPv6 Address . . . . . : fe80::545e:7d5:812b:c17b%18
       IPv4 Address. . . . . . . . . . . : 172.21.144.1
       Subnet Mask . . . . . . . . . . . : 255.255.240.0
       Default Gateway . . . . . . . . . :
    
  12. 使用上一個步驟中的名稱,取得乙太網路卡ifIndex

    $ifIndex = (Get-NetAdapter -Name "<name>").ifIndex
    
  13. 設定靜態 IP 172.20.1.2 和閘道 IP 172.20.1.1 和 DNS Server 172.20.1.1

    提示

    如果您使用 Azure VM,請使用 Windows 主機 OS (L0) DNS 伺服器。 ipconfig /all使用 命令來取得 DNS 伺服器位址。 檢查您是否能夠使用網頁瀏覽器取得因特網存取權。 如果您沒有存取權,請檢查 DNS 伺服器是否已正確設定:

    New-NetIPAddress –IPAddress "172.20.1.2" -DefaultGateway "172.20.1.1" -PrefixLength "24" -InterfaceIndex $ifIndex
    Set-DNSClientServerAddress –InterfaceIndex $ifIndex –ServerAddresses "172.20.1.1"
    
  14. 依照準備您的機器進行 AKS Edge Essentials 程式,設定 Windows-VM-1 虛擬機。

  15. 安裝 Windows-VM-1 虛擬機的所有 AKS Edge Essentials 必要條件。 如需必要條件的詳細資訊,請參閱 AKS Edge Essentials 需求和支援矩陣

    Install-AksEdgeHostFeatures
    
  16. 建立 AKS Edge Essentials 完整規模的部署組態檔。 建立 JSON 之後,請新增必要的參數。 請務必變更外部虛擬交換器建立、DNS 伺服器、指派的記憶體,以及正確的靜態 IP 位址網路適配器。 如需詳細資訊,請參閱 AKS Edge Essentials 中的完整 Kubernetes 部署:

    New-AksEdgeConfig -NodeType Linux -DeploymentType ScalableCluster
    
  17. 使用上一個步驟中建立的組態 JSON 檔案,部署 AKS Edge Essentials 完整規模部署:

    New-AksEdgeDeployment -JsonConfigFilePath .\AksEdgeDeployConfigTemplate.json
    
  18. 在 AKS-Edge-VM-1 虛擬機上啟用 PING ICMP 流量:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -command "sudo iptables -A INPUT -p ICMP -j ACCEPT"
    
  19. 從 Windows-VM-1 虛擬機器 Ping AKS-Edge-VM-1

    ping 172.20.1.4
    
  20. Windows 主機 OS Ping AKS-Edge-VM-1

    ping 172.20.1.4
    

    警告

    如果對 AKS-Edge-VM-1 VM 的 Ping 要求失敗,請檢閱 IP 設定,並針對網路連線進行疑難解答。

  21. 在 Windows-VM-1 內,取得要用於 Windows-VM-2scaleConfig JSON 檔案:

     New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <VM2-Linux-Node-IP>
    
  22. 建立 Windows-VM-2 虛擬機。 使用新的 Windows-VM-2 參數重複步驟 4 到 14:

    • 虛擬機名稱: Windows-VM-2
    • IP 位址: 172.20.1.3
    • 處理器:虛擬處理器數目: 4
    • 記憶體: 8192 MB
    • 網路適配器(虛擬交換器): AKS-Int
    • IP 閘道位址: 172.20.1.1
    • DNS 伺服器位址: 172.20.1.1
  23. 測試從 Windows-VM-2AKS-Edge-VM-1 的 Ping:

    ping 172.20.1.4
    

    警告

    如果對 AKS-Edge-VM-1 的 Ping 要求失敗,請檢閱 IP 設定,並針對網路連線進行疑難解答。

  24. 依照準備您的機器以進行 AKS Edge Essentials 程式,設定 Windows-VM-2 虛擬機。

  25. 安裝 Windows-VM-2 虛擬機的所有 AKS Edge Essentials 必要條件。 如需必要條件的詳細資訊,請參閱 AKS Edge Essentials 需求和支援矩陣

    Install-AksEdgeHostFeatures
    
  26. 線上到 Windows-VM-1 虛擬機,並使用提升許可權的 PowerShell 會話取得 AKS Edge 叢集加入設定:

    New-AksEdgeScaleConfig -NodeType Linux -ScaleType AddMachine -LinuxNodeIp <AKS-Edge-Linux-VM-2>
    
  27. 從 Windows-VM-1 複製 AKS Edge Essentials 調整配置檔,並使用適當的參數加以修改。 如需詳細資訊,請參閱 在多部計算機上相應放大。

  28. 使用上一個步驟中的調整組態 JSON 檔案,在 Window-VM-2 上部署 AKS-Edge-VM-2

    New-AksEdgeDeployment -JsonConfigFilePath <scale-config-json>
    
  29. 驗證節點是否已新增至叢集。 在叢集中的任何節點上,執行下列 Cmdlet:

    kubectl get nodes
    

    如果一切都已正確設定,您應該會看到這兩個 Linux 節點在叢集中執行:

    PS C:\> kubectl get nodes
    NAME                     STATUS   ROLES                       AGE     VERSION
    windows-vm1-ledge        Ready    control-plane,etcd,master   3m45s   v1.24.3+k3s-
    windows-vm2-ledge        Ready    control-plane,etcd,master  10m25s   v1.24.3+k3s-
    

    注意

    如需 K3s 和 K8 上目前支援的 Kubernetes 版本清單,請參閱下載 AKS Edge Essentials 中的表格。

下一步