共用方式為


部署 Microsoft 軟體定義網路 (SDN)

適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

本文說明如何使用 SDN Software Load Balancer,將所有 AKS Arc 負載平衡案例的 AKS 基礎結構和工作負載 VM 部署到 SDN 虛擬網路。 Azure Arc 所啟用的 AKS 提供完全支援的容器平臺,可在 Kubernetes 容器協調流程平臺上執行雲端原生應用程式。 此架構支援執行虛擬化的 Windows 和 Linux 工作負載。

限制

下列功能不在範圍中,在此 GA 版本中不受支援:

  • 將 Pod 和容器連結至 SDN 虛擬網路。
    • Pod 會使用 Flannel 或 Calico (預設) 作為網路提供者。
  • 使用 SDN 網路安全性 群組 強制執行網路原則。
    • SDN 網路安全性 群組 仍然可以使用 SDN 工具在 AKS Arc 外部設定, (REST/PowerShell/Windows Admin Center/SCVMM) ,但 Kubernetes NetworkPolicy 物件不會加以設定。
  • 將 AKS Arc VM NIC 連結至 SDN 邏輯網路。
  • 使用 Windows Admin Center 安裝。
  • 實體主機與 AKS Arc VM 連線:VM NIC 會加入 SDN 虛擬網路,因此預設無法從主機存取。 現在,您可以使用 SDN Software Load Balancer,直接將公用 IP 連結至 VM,以手動啟用此連線。

必要條件

若要使用 SDN 部署 Arc 所啟用的 AKS,請確定您的環境符合 AKS Arc 和 SDN 的部署準則。

注意

SDN 與 AKS Arc 整合只需要網路控制站和軟體 Load Balancer。 閘道 VM 是選擇性的。

安裝和準備 AKS Arc 的 SDN

第一個步驟是安裝 SDN。 若要安裝 SDN,建議使用 SDN ExpressWindows Admin Center。 您可以在這裡找到部署所有必要的 SDN 基礎結構元件的參考配置檔:軟體 Load Balancer.psd1

SDN Express 部署完成之後,應該會有一個畫面將狀態回報為狀況良好。

如果發生錯誤或回報為狀況不良,請參閱 針對 SDN 進行疑難解答

在繼續之前,SDN 的健康情況務必為良好。 如果您在新的環境中部署 SDN,我們也建議您建立測試 VM,並驗證負載平衡器 VIP 的連線。 瞭解如何使用 Windows Admin Center 建立 VM 並將其連結至 SDN 虛擬網路

安裝 AKS 的步驟

初始化並準備 AKS Arc 的所有實體主電腦。如需最新的指示,請參閱 部署 AKS 主機

安裝 AKS-HCI PowerShell 模組

如需安裝 AKS-HCI PowerShell 模組的相關信息,請參閱安裝 AksHci PowerShell 模組

注意

完成此步驟之後,請重新整理或重載任何已開啟的PowerShell工作階段,以重載模組。

註冊訂閱的資源提供者

如需如何向訂用帳戶註冊資源提供者的詳細資訊,請參閱 安裝 AksHci PowerShell 模組

準備機器以進行部署

如需如何準備機器以進行部署的資訊,請參閱 準備機器以進行部署

設定 AKS 以進行安裝

選擇其中一部 Azure Stack HCI 伺服器來推動 AKS Arc 的建立。安裝前需要執行三個步驟:

  1. 設定 SDN 的 AKS 網路設定;例如,使用:

    1. SDN 虛擬網络 “10.20.0.0.0/24” (10.20.0.0 – 10.20.0.255) 。 虛擬化網路,您可以使用任何IP子網。 此子網不需要存在於實體網路上。
    2. vSwitch 名稱 「External」。Azure Stack HCI 伺服器上的外部 vSwitch。 請確定您使用用於 SDN 部署的相同 vSwitch。
    3. 閘道 “10.20.0.1”。此位址是您虛擬網路的閘道。
    4. DNS 伺服器 「10.127.130.7」。。虛擬網路的 DNS 伺服器。
    $vnet = New-AksHciNetworkSetting –name "myvnet" –vswitchName "External" -k8sNodeIpPoolStart "10.20.0.2" -k8sNodeIpPoolEnd "10.20.0.255"
    -ipAddressPrefix "10.20.0.0/24" -gateway "10.20.0.1" -dnsServers "10.127.130.7"
    
    參數 Description
    -name Arc (所啟用之 AKS 中的虛擬網路名稱必須是小寫) 。
    -vswitchName Azure Stack HCI 伺服器上的外部 vSwitch 名稱。 使用用於 SDN 部署的相同 vSwitch。
    -k8sNodeIpPoolStart
    -k8sNodeIpPoolEnd
    SDN 虛擬網路的IP開始/結束範圍。
    -ipAddressPrefix CIDR 表示法中的虛擬網路子網。
    -gateway
    -dnsServers
    SDN 虛擬網路的閘道和 DNS 伺服器。

    如需這些參數的詳細資訊,請參閱 New-AksHciNetworkSetting

  2. 在您在步驟 1 中使用的相同 PowerShell 視窗中,建立 VIP 集區來通知 AKS 我們的 IP,這些 IP 可從我們的 SDN 負載平衡邏輯網路使用:

    $VipPool = New-AksHciVipPoolSetting -name "publicvip" -vipPoolStart "10.127.132.16" -vipPoolEnd "10.127.132.23
    
    參數 Description
    -name 您在設定 SDN 負載平衡器時提供的 「PublicVIP」 邏輯網路。 在 Cmdlet 中,此名稱必須是小寫。
    -vipPoolStart 用於公用負載平衡器 VIP 集區的邏輯網路的IP開始範圍。 您必須使用來自 「PublicVIP」 SDN 邏輯網路的位址範圍。
    -vipPoolEnd 用於公用負載平衡器 VIP 集區的 IP 結束邏輯網路範圍。 您必須使用來自 「PublicVIP」 SDN 邏輯網路的位址範圍。
  3. 在步驟 2 中使用的相同 PowerShell 視窗中,藉由提供目標 SDN 網路的參考來建立 SDN 的 AKS 組態,並提供網路設定 ($vnet,$vipPool) 我们先前定义的:

    Set-AksHciConfig 
    –imageDir "C:\ClusterStorage\Volume1\ImageStore" 
    –workingDir "C:\ClusterStorage\Volume1\WorkDir"
    –cloudConfigLocation "C:\ClusterStorage\Volume1\Config" 
    –vnet $vnet –useNetworkController
    –NetworkControllerFqdnOrIpAddress "nc.contoso.com" 
    –networkControllerLbSubnetRef "/logicalnetworks/PublicVIP/subnets/my_vip_subnet" 
    –networkControllerLnetRef "/logicalnetworks/HNVPA" 
    -vipPool $vipPool
    

    HNVPA 邏輯網路是作為 AKS Arc 虛擬網路的基礎提供者。

    如果您針對 Azure Stack HCI 叢集節點使用靜態 IP 位址指派,您也必須提供 CloudServiceCidr 參數。 此參數是MOC雲端服務的IP位址,且必須與 Azure Stack HCI 叢集節點位於相同的子網中。 如需詳細資訊,請參閱 Microsoft 內部部署雲端服務

    參數 Description
    –imageDir AKS Arc 儲存其 VHD 映像的路徑。 此路徑必須是共用記憶體路徑或SMB共用。
    –workingDir 儲存模組小型檔案的路徑。 此路徑必須是共用記憶體路徑或SMB共用。
    -cloudConfigLocation 儲存雲端代理程式組態之目錄的路徑。 此路徑必須是共用記憶體路徑或SMB共用。
    -vnet 在上一個步驟中建立的 AksHciNetworkSetting 變數名稱
    -useNetworkController 啟用與 SDN 的整合。
    -networkControllerFqdnOrIpAddress 網路控制器 FQDN。 您可以在網路控制站 VM 上執行 Get-NetworkController 並使用 RestName 參數來取得 FQDN。
    -networkControllerLbSubnetRef 在網路控制站中設定的公用VIP邏輯網路子網參考。 您可以執行 Get-NetworkControllerLogicalSubnet Cmdlet 來取得此子網。 使用此 Cmdlet 時,請使用 PublicVIP 作為 LogicalNetworkIdVipPoolStart Cmdlet 中的 New-AksHciVipPoolSettingvipPoolEnd 參數必須是此處參考的子網的一部分。
    -networkControllerLnetRef 一般而言,此值為 “/logicalnetworks/HNVPA”。
    -vipPool 用來作為負載平衡前端IP的VIP集區。

    如需這些參數的詳細資訊,請參閱 Set-AksHciConfig

登入 Azure 並設定註冊設定

請遵循 這裡的指示 來設定註冊設定。

注意

如果您沒有擁有者許可權,建議您使用 Azure 服務主體

安裝 AKS

AKS 設定完成後,您就可以在 Azure Stack HCI 上安裝 AKS。

Install-AksHci

安裝成功之後,就會建立控制平面 VM (管理叢集) ,並將其 VmNIC 連結至您的 SDN 網路。

從 HCI 環境的 SDN 和 AKS 收集記錄

透過 HCI 上的 SDN 和 AKS,我們會隔離虛擬網路上的 AKS 節點。 因為它們是隔離的,因此我們必須匯入新的 SDN AKS-HCI 記錄收集腳本,並執行已修改的命令,以使用負載平衡器從節點擷取記錄:

Install-Module -Name AksHciSdnLogCollector -Repository PSGallery
Get-AksHciLogsSdn

意見反應/問題

如需 SDN,請參閱這裡的自助資源,如需 AKS-HCI,請參閱這裡。

下一步

接下來,您可以 建立工作負載叢集部署您的應用程式。 Arc 所啟用之 AKS 中的所有 AKS VM NIC 都會順暢地連結至安裝期間提供的 SDN 虛擬網路。 SDN Software 負載平衡器也會作為所有 Kubernetes 服務的外部負載平衡器,並作為 Kubernetes 控制平面上 API 伺服器的負載平衡器, (s) 。