部署 AKS 節點的網路概念
適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
您可以針對 Arc 所啟用的 AKS 的網路架構,選擇兩個 IP 位址指派模型。AKS 支持 數個適用於 Azure Kubernetes Service 的部署選項 (AKS):
- 靜態 IP 網路:虛擬網路會將靜態 IP 位址配置給 Kubernetes 叢集 API 伺服器、Kubernetes 節點、基礎 VM、負載平衡器,以及任何在叢集上執行的 Kubernetes 服務。
- DHCP 網路:虛擬網路會使用 DHCP 伺服器,將動態IP位址配置給 Kubernetes 節點、基礎 VM 和負載平衡器。 Kubernetes 叢集 API 伺服器,以及您在叢集上執行的任何 Kubernetes 服務,仍會配置靜態 IP 位址。
注意
這裡為 AKS Arc 定義的虛擬網路架構可能與資料中心的基礎實體網路架構不同。
虛擬IP集區
虛擬IP(VIP) 集區是 AKS Arc 中任何部署的必要IP位址集。VIP 集區是保留的IP位址範圍,可用來將IP位址配置給 Kubernetes 叢集 API 伺服器。 它保證 Kubernetes 服務上的應用程式一律可連線。 請記住,無論您選擇的虛擬網路模型和位址指派模型為何,都必須為 AKS 主機部署提供 VIP 集區。
VIP 集區中的IP位址數目取決於您為部署規劃的工作負載叢集和 Kubernetes 服務數目。
視您的網路模型而定,VIP 集區定義會以下列方式有所不同:
- 靜態 IP:如果您使用靜態 IP,請確定您的虛擬 IP 位址來自所提供的相同子網。
- DHCP:如果您的網路是使用 DHCP 設定,請與您的網路管理員合作,將VIP集區IP範圍從用於 Azure Stack HCI 部署 AKS 的 DHCP 範圍中排除。
Kubernetes 節點 VM IP 集區
Kubernetes 節點會部署為 AKS Arc 中的特製化虛擬機。AKS 會將IP位址配置給這些虛擬機,以啟用 Kubernetes 節點之間的通訊。
- 靜態 IP:您必須指定 Kubernetes 節點 VM IP 集區範圍。 此範圍內的IP位址數目取決於您計劃用來跨AKS主機和工作負載 Kubernetes 叢集部署的 Kubernetes 節點總數。 請記住,更新會在更新期間取用一到三個額外的IP位址。
- DHCP:您不需要指定 Kubernetes 節點 VM 集區,因為 Kubernetes 節點的 IP 位址是由網路上的 DHCP 伺服器動態配置。
具有靜態 IP 網路的虛擬網路(建議)
此網路模型會建立虛擬網路,將IP位址從靜態定義的位址池配置給部署中的所有物件。 使用靜態 IP 網路的額外優點是,長期部署和應用程式工作負載保證一律可連線。
定義具有靜態IP組態的虛擬網路時,請指定下列參數:
重要
一旦部署 AKS 主機或工作負載叢集,此版本的 AKS 不允許任何網路組態變更。 若要變更網路設定,您必須移除工作負載叢集並卸載 AKS 來啟動全新。
名稱:虛擬網路的名稱。
地址前綴:要用於子網的IP位址前綴。
閘道:子網預設閘道的IP位址。
DNS 伺服器:指向要用於子網之 DNS 伺服器的IP位址陣列。 至少可以提供一部伺服器,最多三部伺服器。
Kubernetes 節點 VM 集區:要用於 Kubernetes 節點 VM 的 IP 位址連續範圍。
虛擬IP集區:要用於 Kubernetes 叢集 API 伺服器和 Kubernetes 服務的連續IP位址範圍。
注意
VIP 集區必須是與 Kubernetes 節點 VM 集區相同子網的一部分。
vLAN識別碼:虛擬網路的 vLAN 識別碼。 如果省略,就不會標記虛擬網路。
使用 DHCP 網路的虛擬網路
此網路模型會建立虛擬網路,以使用 DHCP 將 IP 位址配置給部署中的所有物件。
您必須在定義具有靜態 IP 組態的虛擬網路時指定下列參數:
名稱:虛擬網路的名稱。
虛擬IP集區:要用於 Kubernetes 叢集 API 伺服器和 Kubernetes 服務的連續IP位址範圍。
注意
VIP 集區地址必須位於與 DHCP 範圍相同的子網中,而且必須從 DHCP 範圍中排除,以避免地址衝突。
vLAN識別碼:虛擬網路的 vLAN 識別碼。 如果省略,就不會標記虛擬網路。
Microsoft內部部署雲端服務
Microsoft內部部署雲端 (MOC) 是管理堆棧,可讓 Azure Stack HCI 和 Windows Server 型 SDDC 上的虛擬機在雲端中管理。 MOC 包含:
- 部署在叢集中之高可用性
cloud agent
服務的單一實例。 此代理程式會在 Azure Stack HCI 或 Windows Server 叢集中的任何一個節點上執行,並設定為故障轉移至另一個節點。 node agent
在每個 Azure Stack HCI 實體節點上執行的 。
若要啟用與 MOC 的通訊,您必須提供要用於服務的 IP 位址 CIDR。 -cloudserviceCIDR
是命令中的Set-AksHciConfig
參數,用來將IP位址指派給雲端代理程式服務,並啟用雲端代理程式服務的高可用性。
MOC 服務的IP位址選擇取決於您在 Azure Stack HCI 或 Windows Server 上的叢集部署所使用的基礎網路模型。
注意
MOC 服務的IP位址配置與 Kubernetes 虛擬網路模型無關。 IP 位址配置取決於基礎實體網路,以及針對數據中心內 Azure Stack HCI 或 Windows Server 叢集節點所設定的 IP 位址。
具有 DHCP 型 IP 位址配置模式的 Azure Stack HCI 和 Windows Server 叢集節點:如果您的 Azure Stack HCI 節點是從實體網路上存在的 DHCP 伺服器指派 IP 位址,則您不需要明確提供 IP 位址給 MOC 服務,因為 MOC 服務也會從 DHCP 伺服器接收 IP 位址。
具有靜態IP配置模型的 Azure Stack HCI 和 Windows Server 叢集節點:如果您的叢集節點已獲指派靜態 IP 位址,則您必須明確提供 MOC 雲端服務的 IP 位址。 MOC 服務的IP位址必須與 Azure Stack HCI 和 Windows Server 叢集節點的IP位址位於相同的子網中。 若要明確指派MOC服務的IP位址,請使用
-cloudserviceCIDR
命令中的Set-AksHciConfig
參數。 請務必以 CIDR 格式輸入 IP 位址,例如:“10.11.23.45/16”。
比較網路模型
DHCP 和靜態 IP 都提供 Azure Stack HCI 和 Windows Server 部署上 AKS 的網路連線能力。 不過,各有其優缺點。 概括而言,會有下列考量:
DHCP - 不保證 AKS 部署中某些資源類型的長期 IP 位址。 - 如果您的部署大於您最初預期,支援擴充保留的 DHCP IP 位址。
靜態 IP - 保證 AKS 部署中所有資源的長期 IP 位址。 - 由於不支援 Kubernetes 節點 IP 集區的自動擴充,因此如果您已耗盡 Kubernetes 節點 IP 集區,您可能無法建立新的叢集。
下表比較靜態 IP 與 DHCP 網路模型之間資源的 IP 位址設定:
功能 | 靜態 IP | DHCP |
---|---|---|
Kubernetes 叢集 API 伺服器 | 使用VIP集區以靜態方式指派。 | 使用VIP集區以靜態方式指派。 |
Kubernetes 節點 (在虛擬機上) | 使用 Kubernetes 節點 IP 集區指派。 | 動態指派。 |
Kubernetes 服務 | 使用VIP集區以靜態方式指派。 | 使用VIP集區以靜態方式指派。 |
HAProxy 負載平衡器 VM | 使用 Kubernetes 節點 IP 集區指派。 | 動態指派。 |
Microsoft內部部署雲端服務 | 取決於 Azure Stack HCI 和 Windows Server 叢集節點的實體網路設定。 | 取決於 Azure Stack HCI 和 Windows Server 叢集節點的實體網路設定。 |
VIP 集區 | 必要 | 必要 |
Kubernetes 節點 VM IP 集區 | 必要 | 不支援 |
AKS 部署的最低IP位址保留專案
無論您的部署模型為何,保留的IP位址數目都會維持不變。 本節說明您需要根據 AKS Arc 部署模型保留的 IP 位址數目。
最小IP位址保留
您至少應該為部署保留下列 IP 位址數目:
叢集類型 | 控制平面節點 | 背景工作節點 | 更新作業 | 負載平衡器 |
---|---|---|---|---|
AKS 主機 | 一個IP | NA | 兩個IP | NA |
工作負載叢集 | 每個節點一個IP | 每個節點一個IP | 5 個 IP | 一個IP |
此外,您應該為 VIP 集區保留下列 IP 位址數目:
資源類型 | IP 位址數目 |
---|---|
叢集 API 伺服器 | 每個叢集 1 個 |
Kubernetes 服務 | 每個服務1個 |
應用程式服務 | 已規劃每個服務1個 |
如您所見,所需的IP位址數目會根據AKS部署的架構以及您在 Kubernetes 叢集上執行的服務數目而變動。 建議您為部署保留至少 256 個 IP 位址(/24 個子網)。
逐步解說範例部署
Jane 是 IT 系統管理員,剛從 Azure Arc 啟用的 AKS 開始。她想要在 Azure Stack HCI 叢集上部署兩個 Kubernetes 叢集:Kubernetes 叢集 A 和 Kubernetes 叢集 B。 她也想要在叢集之上執行投票應用程式。 此應用程式有三個在兩個叢集和一個後端資料庫實例上執行的前端 UI 實例。
- Kubernetes 叢集 A 有 3 個控制平面節點和 5 個背景工作節點。
- Kubernetes 叢集 B 有 1 個控制平面節點和 3 個背景工作節點。
- 前端 UI 的 3 個實例(埠 443)。
- 後端資料庫的1個實例(埠80)。
根據上表,她必須保留:
- AKS 主機的 3 個 IP 位址(一個用於控制平面節點的 IP,以及兩個用於執行更新作業的 IP)。
- 叢集 A 中控制平面節點的 3 個 IP 位址(每個控制平面節點一個 IP)。
- 叢集 A 中背景工作節點的 5 個 IP 位址(每個背景工作節點一個 IP)。
- 叢集 A 另外還有 6 個 IP 位址(五個 IP 用於執行更新作業,1 個適用於負載平衡器的 IP)。
- 叢集 B 中控制平面節點的 1 個 IP 位址(每個控制平面節點一個 IP)。
- 叢集 B 中背景工作節點的 3 個 IP 位址(每個背景工作節點一個 IP)。
- 叢集 B 另外還有 6 個 IP 位址(五個 IP 用於執行更新作業,1 個適用於負載平衡器的 IP)。
- Kubernetes 叢集 API 伺服器的 2 個 IP 位址(每個 Kubernetes 叢集一個 IP)。
- Kubernetes 服務的 3 個 IP 位址(每個前端 UI 實例有一個 IP 位址,因為它們全都使用相同的埠。只要後端資料庫會使用不同的埠,就可以使用三個IP位址中的任何一個。
如先前所述,Jane 需要總共 32 個 IP 位址才能部署叢集。 因此,Jane 應該為她的虛擬網路保留 /26 子網。
根據靜態IP網路模型分割保留的IP位址
雖然保留的IP位址總數保持不變,但部署模型會決定這些IP位址在IP群組之間如何分割。 靜態IP網路模型有兩個IP集區:
- Kubernetes 節點 VM IP 集區:適用於 Kubernetes 節點 VM 和負載平衡器 VM。 此IP集區也包含執行更新作業所需的IP位址。
- 虛擬IP集區:適用於 Kubernetes API 伺服器和 Kubernetes 服務。
使用此範例時,Jane 必須將這些IP位址進一步分割到VIP集區和 Kubernetes 節點 IP 集區:
- 5 (兩個用於 Kubernetes 叢集 API 伺服器,3 個用於 Kubernetes 服務),其 VIP 集區有 32 個 IP 位址。
- 27 (其 Kubernetes 節點和基礎 VM 的所有 IP 位址、負載平衡器 VM,以及更新作業)適用於其 Kubernetes 節點 IP 集區。
根據 DHCP 網路模型分割保留的 IP 位址
雖然保留的IP位址總數保持不變,但部署模型會決定這些IP位址在IP群組之間如何分割。 如上一節所述,DHCP 網路模型有一個IP範圍:
- 虛擬IP集區:適用於 Kubernetes API 伺服器和 Kubernetes 服務
使用上述範例:
- Jane 必須在 DHCP 伺服器上保留總共 32 個 IP 位址或 /26 子網。
- 她必須從 VIP 集區 32 個 IP 位址的 DHCP 範圍中排除 5 個 (兩個用於 Kubernetes 叢集 API 伺服器,3 個用於 Kubernetes 服務)。
輸入控制器
在部署目標叢集期間, HAProxy
會建立以為基礎的負載平衡器資源。 負載平衡器已設定為將流量分散至指定埠上您服務中的Pod。 負載平衡器只能在第 4 層運作,這表示服務不知道實際的應用程式;亦即,它無法進行任何額外的路由考慮。
輸入控制器可在第 7 層運作,而且能夠使用更智慧的規則來分散應用程式流量。 輸入控制器的常見用法是根據輸入URL將 HTTP 流量路由傳送至不同的應用程式。
下一步
本文涵蓋在 Azure Stack HCI 上部署 AKS 節點的一些網路概念。 如需詳細資訊,請參閱下列文章: