部署 AKS 節點的網路概念

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

您可以針對 Azure 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 設定,請與網路管理員合作,從用於 Azure Stack HCI 部署 AKS 的 DHCP 範圍中排除 VIP 集區 IP 範圍。

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 設定時,請指定下列參數:

重要

一旦部署 AKS 主機或工作負載叢集之後,此版本的 AKS 不允許任何網路組態變更。 若要變更網路設定,您必須移除工作負載叢集, () 並卸載 AKS 來啟動。

  • 名稱:您的虛擬網路名稱。

  • 位址首碼:用於您子網路的 IP 位址首碼。

  • 閘道:子網路預設閘道的 IP 位址。

  • DNS 伺服器:IP 位址陣列,指向要用於子網路的 DNS 伺服器。 可以提供最少一部、最多三部伺服器。

  • Kubernetes 節點 VM 集區:要用於 Kubernetes 節點 VM 的連續 IP 位址範圍。

  • 虛擬 IP 集區:要用於 Kubernetes 叢集 API 伺服器和 Kubernetes 服務的連續 IP 位址範圍。

    注意

    VIP 集區必須與 Kubernetes 節點 VM 集區屬於相同的子網路。

  • VLAN 識別碼:虛擬網路的 VLAN 識別碼。 如果省略,則不會標記虛擬網路。

使用 DHCP 網路的虛擬網路

此網路模型會建立虛擬網路,使用 DHCP 將 IP 位址配置給部署中的所有物件。

定義虛擬網路使用靜態 IP 設定時,您必須指定下列參數:

重要

在此版本的 AKS 中,一旦部署 AKS 主機或工作負載叢集,就無法變更網路設定。 變更網路設定的唯一方法是移除工作負載叢集, () 並卸載 AKS 來啟動。

  • 名稱:您的虛擬網路名稱。

  • 虛擬 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 叢集中的任一節點上執行,並設定為容錯移轉至另一個節點。
  • 在每個 Azure Stack HCI 實體節點上執行的 node agent

若要啟用與 MOC 的通訊,您必須提供要用於服務的 IP 位址 CIDR。 -cloudserviceCIDRSet-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 叢集節點:如果您的 Azure Stack HCI 叢集節點獲指派靜態 IP 位址,則必須為 MOC 雲端服務明確提供 IP 位址。 MOC 服務的 IP 位址必須與 Azure Stack HCI 和 Windows Server 叢集節點的 IP 位址位於相同的子網路。 若要為 MOC 服務明確指派 IP 位址,請在 Set-AksHciConfig 命令中使用 -cloudserviceCIDR 參數。 請確定您使用 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 個背景工作節點。
  • 3 個前端 UI 實例 (埠 443) 。
  • 後端資料庫的 1 個實例 (埠 80) 。

根據上表,她必須保留:

  • AKS 主機的 3 個 IP 位址 (一個 IP,用於控制平面節點,以及兩個 IP 來執行更新作業) 。
  • 叢集中控制平面節點的 3 個 IP 位址 A (每個控制平面節點一個 IP) 。
  • 叢集中背景工作節點的 5 個 IP 位址 A (每個背景工作節點一個 IP) 。
  • 叢集 A (執行更新作業的 6 個 IP 位址,以及負載平衡器) 1 個 IP。
  • 叢集中控制平面節點的 1 個 IP 位址, (每個控制平面節點一個 IP) 。
  • 叢集 B 中背景工作節點的 3 個 IP 位址 (每個背景工作節點一個 IP) 。
  • 叢集 B (執行更新作業的 6 個 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 集區:

  • 32 個 IP 位址中有 5 個用於其 VIP 集區 (兩個用於 Kubernetes 叢集 API 伺服器,三個用於 Kubernetes 服務)。
  • 27 個用於其 Kubernetes 節點 IP 集區 (所有 IP 位址用於其 Kubernetes 節點和基礎 VM、負載平衡器 VM,以及更新作業)。

根據 DHCP 網路模型分割保留的 IP 位址

雖然保留的 IP 位址總數保持不變,但部署模型會決定這些 IP 位址在 IP 群組之間的分割方式。 如上一節所述,DHCP 網路模型有一個 IP 範圍:

  • 虛擬IP集區:適用於 Kubernetes API 伺服器和 Kubernetes 服務

使用上一個範例:

  • Jane 必須在其 DHCP 伺服器上保留總計 32 個 IP 位址或一個 /26 子網路。
  • 她必須從用於 VIP 集區的 32 個 IP 位址 DHCP 領域中排除 5 個 (兩個用於 Kubernetes 叢集 API 伺服器,三個用於 Kubernetes 服務)。

輸入控制器

在目標叢集部署期間,會建立以 HAProxy 為基礎的負載平衡器資源。 在您的服務中,負載平衡器會設定為透過指定的連接埠將流量分散到 Pod。 負載平衡器只能在第 4 層運作,這表示服務不知道實際的應用程式;亦即,它無法進行任何額外的路由考慮。

輸入控制器適用於第 7 層,並可使用更具智慧的規則來分散應用程式流量。 輸入控制器的常見用法是根據輸入URL將 HTTP 流量路由傳送至不同的應用程式。

此圖顯示 Azure Stack HCI 上 AKS 叢集中的輸入流量。

後續步驟

本文涵蓋在 Azure Stack HCI 上部署 AKS 節點的部分網路概念。 如需詳細資訊,請參閱下列文章: