在 AKS 混合式中部署 AKS 節點的網路概念

適用于:Azure Stack HCI 上的 AKS、Windows Server 上的 AKS

您可以選擇 AKS 混合式網路架構的兩個 IP 位址指派模型。 AKS 混合式支援Azure Kubernetes Service (AKS) 的混合式部署選項。

  • 靜態 IP 網路
    虛擬網路會將靜態 IP 位址配置給 Kubernetes 叢集 API 伺服器、Kubernetes 節點、基礎 VM、負載平衡器,以及您在叢集上執行的任何 Kubernetes 服務。

  • DHCP 網路
    虛擬網路會使用 DHCP 伺服器,將動態 IP 位址配置給 Kubernetes 節點、基礎 VM 和負載平衡器。 Kubernetes 叢集 API 伺服器和您在叢集上執行的任何 Kubernetes 服務仍會配置靜態 IP 位址。

注意

這裡為 AKS 混合式定義的虛擬網路架構,可能會與資料中心的基礎實體網路架構不同。

虛擬 IP 集區

虛擬 IP (VIP) 集區是 AKS 混合式中任何部署的必要 IP 位址集。 VIP 集區是用來將 IP 位址配置給 Kubernetes 叢集 API 伺服器的保留 IP 位址範圍。 其保證您在 Kubernetes 服務上的應用程式一律可連線。 請謹記,無論您選擇何種虛擬網路模型位址指派模型,您都必須為 AKS 主機部署提供 VIP 集區。

VIP 集區中的 IP 位址數目,取決於規劃部署的工作負載叢集和 Kubernetes 服務數目。

視您的網路模型而定,VIP 集區定義會有下列差異:

  • 靜態 IP - 如果您使用的是靜態 IP,請確定您的虛擬 IP 位址來自提供的相同子網路。
  • DHCP - 如果您的網路設定為使用 DHCP,您將需要與網路管理員合作,並從用於 Azure Stack HCI 上 AKS 部署的 DHCP 範圍中排除 VIP 集區 IP 範圍。

Kubernetes 節點 VM IP 集區

Kubernetes 節點會部署為 AKS 混合式中的特製化虛擬機器。 AKS 會將 IP 位址配置給這些虛擬機器,以啟用 Kubernetes 節點之間的通訊。

  • 靜態 IP - 您必須指定 Kubernetes 節點 VM IP 集區範圍。 此範圍內的 IP 位址數目,取決於您打算在 AKS 主機和工作負載 Kubernetes 叢集上部署所用的 Kubernetes 節點總數。 請謹記,在更新期間,更新將會取用一到三個額外的 IP 位址。
  • DHCP - 您不需要指定 Kubernetes 節點 VM 集區,因為您網路上的 DHCP 伺服器會將 IP 位址動態配置給 Kubernetes 節點。

此網路模型會建立虛擬網路,將 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 位址,則不需要為 MOC 服務明確提供 IP 位址,因為 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 混合式部署模型保留的 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 是剛開始使用 AKS 的 IT 系統管理員。 她想要在 Azure Stack HCI 叢集上部署兩個 Kubernetes 叢集 - Kubernetes 叢集 A 和 Kubernetes 叢集 B。 她也想要在叢集上執行投票應用程式。 此應用程式有三個在兩個叢集上執行的前端 UI 執行個體,以及一個後端資料庫執行個體。

  • Kubernetes 叢集 A 有 3 個控制平面節點和 5 個背景工作節點
  • Kubernetes 叢集 B 有 1 個控制平面節點和 3 個背景工作節點
  • 3 個前端 UI 執行個體 (連接埠 443)
  • 1 個後端資料庫執行個體 (連接埠 80)

根據上表,她必須保留:

  • 3 個用於 AKS 主機的 IP 位址 (一個 IP 用於控制平面節點,兩個 IP 用於執行更新作業)
  • 3 個用於叢集 A 中控制平面節點的 IP 位址 (每個控制平面節點一個 IP)
  • 5 個用於叢集 A 中背景工作節點的 IP 位址 (每個背景工作節點一個 IP)
  • 額外 6 個用於叢集 A 的 IP 位址 (五個 IP 用於執行更新作業,1 個 IP 用於負載平衡器)
  • 1 個用於叢集 B 中控制平面節點的 IP 位址 (每個控制平面節點一個 IP)
  • 3 個用於叢集 B 中背景工作節點的 IP 位址 (每個背景工作節點一個 IP)
  • 額外 6 個用於叢集 B 的 IP 位址 (五個 IP 用於執行更新作業,1 個 IP 用於負載平衡器)
  • 2 個用於 Kubernetes 叢集 API 伺服器的 IP 位址 (每個 Kubernetes 叢集一個 IP)
  • 3個 Kubernetes 服務的 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 節點的部分網路概念。 如需詳細資訊,請參閱下列文章: