部署Microsoft軟體定義網路 (SDN)
適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
本文說明如何針對所有 AKS Arc 負載平衡案例,使用我們的 SDN 軟體負載平衡器,將 AKS 基礎結構和工作負載 VM 部署至 SDN 虛擬網絡。 Azure Arc 所啟用的 AKS 提供完全支援的容器平臺,可在 Kubernetes 容器協調流程平臺上執行雲端原生應用程式。 此架構支援執行虛擬化的 Windows 和 Linux 工作負載。
限制
下列功能不在範圍中,在此 GA 版本中不受支援:
- 將 Pod 和容器連結至 SDN 虛擬網路。
- Pod 會使用 Flannel 或 Calico (預設值) 作為網路提供者。
- 使用 SDN 網路安全組強制執行網路原則。
- SDN 網路安全組仍然可以使用 SDN 工具 (REST/PowerShell/Windows Admin Center/SCVMM) 在 AKS Arc 外部設定,但 Kubernetes NetworkPolicy 物件不會加以設定。
- 將 AKS Arc VM NIC 連結至 SDN 邏輯網路。
- 使用 Windows Admin Center 安裝。
- 實體主機與 AKS Arc VM 連線:VM NIC 會加入 SDN 虛擬網路,因此預設無法從主機存取。 現在,您可以使用 SDN 軟體負載平衡器,將公用 IP 直接連結至 VM,以手動啟用此連線。
必要條件
若要使用 SDN 部署 Arc 所啟用的 AKS,請確定您的環境符合 AKS Arc 和 SDN 的部署準則。
- AKS Arc 需求
- SDN 需求: 規劃軟體定義網路基礎結構
注意
SDN 與 AKS Arc 整合只需要網路控制站和軟體負載平衡器。 閘道 VM 是選擇性的。
安裝和準備 AKS Arc 的 SDN
第一個步驟是安裝 SDN。 若要安裝 SDN,建議 使用 SDN Express 或 Windows Admin Center。 您可以在這裡找到部署所有必要的 SDN 基礎結構元件的參考配置檔:[Software 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 本機計算機,以推動 AKS Arc 的建立。在安裝之前必須完成三個步驟:
設定 SDN 的 AKS 網路設定;例如,使用:
- SDN 虛擬網络 “10.20.0.0/24” (10.20.0.0 – 10.20.0.0.255)。 虛擬化網路,您可以使用任何IP子網。 此子網不需要存在於您的實體網路上。
- vSwitch 名稱 「External」。Azure 本機電腦上的外部 vSwitch。 請確定您使用用於 SDN 部署的相同 vSwitch。
- 閘道 “10.20.0.1”。此位址是虛擬網路的閘道。
- 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"
參數 描述 -name
Arc 所啟用 AKS 中的虛擬網路名稱(必須是小寫)。 -vswitchName
Azure 本機電腦上外部 vSwitch 的名稱。 使用用於 SDN 部署的相同 vSwitch。 -k8sNodeIpPoolStart
-k8sNodeIpPoolEnd
SDN 虛擬網路的IP開始/結束範圍。 -ipAddressPrefix
CIDR 表示法中的虛擬網路子網。 -gateway
-dnsServers
SDN 虛擬網路的閘道和 DNS 伺服器。 如需這些參數的詳細資訊,請參閱 New-AksHciNetworkSetting。
在您在步驟 1 中使用的相同 PowerShell 視窗中,建立 VIP 集區來通知 AKS 我們的 IP,這些 IP 可從我們的 SDN 負載平衡邏輯網路使用:
$VipPool = New-AksHciVipPoolSetting -name "publicvip" -vipPoolStart "10.127.132.16" -vipPoolEnd "10.127.132.23
參數 描述 -name
您在設定 SDN 負載平衡器時提供的 「PublicVIP」 邏輯網路。 在 Cmdlet 中,此名稱必須是小寫。 -vipPoolStart
用於公用負載平衡器 VIP 集區的邏輯網路的IP開始範圍。 您必須使用來自 「PublicVIP」 SDN 邏輯網路的位址範圍。 -vipPoolEnd
用於公用負載平衡器 VIP 集區的 IP 結束邏輯網路範圍。 您必須使用來自 「PublicVIP」 SDN 邏輯網路的位址範圍。 在步驟 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 本機叢集節點使用靜態 IP 位址指派,您也必須提供
CloudServiceCidr
參數。 此參數是MOC雲端服務的IP位址,且必須與 Azure 本機叢集節點位於相同的子網中。 如需詳細資訊,請參閱 Microsoft內部部署雲端服務。參數 描述 –imageDir
AKS Arc 儲存其 VHD 映像的路徑。 此路徑必須是共用記憶體路徑或SMB共用。 –workingDir
儲存模組小型檔案的路徑。 此路徑必須是共用記憶體路徑或SMB共用。 -cloudConfigLocation
儲存雲端代理程式組態之目錄的路徑。 此路徑必須是共用記憶體路徑或SMB共用。 -vnet
在上一個步驟中建立的 AksHciNetworkSetting
變數名稱-useNetworkController
啟用與 SDN 的整合。 -networkControllerFqdnOrIpAddress
網路控制站 FQDN。 您可以在網路控制站 VM 上執行 Get-NetworkController
並使用RestName
參數來取得 FQDN。-networkControllerLbSubnetRef
在網路控制站中設定的公用VIP邏輯網路子網參考。 您可以執行 Cmdlet 來 Get-NetworkControllerLogicalSubnet
取得此子網。 使用此 Cmdlet 時,請使用PublicVIP
作為LogicalNetworkId
。VipPoolStart
Cmdlet 中的New-AksHciVipPoolSetting
和vipPoolEnd
參數必須是此處所參考子網的一部分。-networkControllerLnetRef
一般而言,此值為 “/logicalnetworks/HNVPA”。 -vipPool
用來作為負載平衡前端IP的VIP集區。 如需這些參數的詳細資訊,請參閱 Set-AksHciConfig。
登入 Azure 並設定註冊設定
請遵循 這裡的 指示來設定註冊設定。
注意
如果您沒有擁有者許可權,建議您使用 Azure 服務主體。
安裝 AKS
AKS 組態完成後,您就可以在 Azure 本機上安裝 AKS。
Install-AksHci
安裝成功之後,就會建立控制平面 VM(管理叢集),並將其 VmNIC 連結至您的 SDN 網路。
從 Azure 本機環境的 SDN 和 AKS 收集記錄
透過 Azure 本機上的 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 伺服器的負載平衡器。