vSphere with Tanzu 與 vDS 網路搭配使用時,HAProxy 為開發人員存取 Tanzu Kubernetes 控制平面以及為負載平衡器類型的 Kubernetes 服務提供負載平衡。檢閱可以為 HAProxy 負載平衡器實作的可能拓撲。

主管叢集上的工作負載網路

若要設定具有 vSphere 網路堆疊的 主管叢集,則必須將叢集中的所有主機連線到 vSphere Distributed Switch。您可以建立一或多個分散式連接埠群組,具體取決於您為主管叢集工作負載網路實作的拓撲。您可以將連接埠群組作為工作負載網路指定給 vSphere 命名空間

將主機新增到 主管叢集 之前,必須將其新增至屬於該叢集的所有 vSphere Distributed switch。

工作負載網路提供與 Tanzu Kubernetes 叢集的節點連線,以及與 主管叢集 控制平面虛擬機器的連線。提供與 Kubernetes 控制平面虛擬機器的連線的工作負載網路稱為「主要工作負載網路」。每個 主管叢集 都必須擁有一個主要工作負載網路。必須將其中一個分散式連接埠群組指定為 主管叢集 的主要工作負載網路。
備註: 僅在您啟用 主管叢集 時才會新增工作負載網路,且無法於稍後新增。

主管叢集 上的 Kubernetes 控制平面虛擬機器使用指派給主要工作負載網路的 IP 位址範圍中的三個 IP 位址。Tanzu Kubernetes 叢集的每個節點都有一個單獨的 IP 位址,該位址是從設定了 Tanzu Kubernetes 叢集執行所在命名空間的工作負載網路的位址範圍進行指派。

IP 範圍配置

使用 HA Proxy 負載平衡器規劃 主管叢集的網路拓撲時,請規劃具有兩種類型的 IP 範圍:
  • 用於為 HAProxy 配置虛擬 IP 的範圍。為 HAProxy 的虛擬伺服器設定的 IP 範圍由負載平衡器應用裝置保留。例如,如果虛擬 IP 範圍為 192.168.1.0/24,則該範圍內的所有主機皆無法存取除虛擬 IP 流量以外的流量。
    備註: 您不得將閘道設定在 HAProxy 虛擬 IP 範圍內,因為所有到該閘道的路由都會失敗。
  • 主管叢集Tanzu Kubernetes 叢集節點的 IP 範圍。主管叢集中的每個 Kubernetes 控制平面虛擬機器都會指派有一個 IP 位址,總計三個 IP 位址。Tanzu Kubernetes 叢集的每個節點也指派有一個獨立的 IP。必須為設定至命名空間的主管叢集上的每個工作負載網路指派唯一的 IP 範圍。

具有一個 /24 網路的組態範例:

  • 網路:192.168.120.0/24
  • HAProxy VIP:192.168.120.128/25
  • 1 個 HAProxy 工作負載介面的 IP 位址:192.168.120.5

視前 128 個位址內可用的 IP 而定,您可以為主管叢集上的工作負載網路定義 IP 範圍,例如:

  • 對於主要工作負載網路:192.168.120.31-192.168.120.40
  • 對於另一個工作負載網路:192.168.120.51-192.168.120.60
備註: 為工作負載網路定義的範圍不得與 HAProxy VIP 範圍重疊。

HAProxy 網路拓撲

有兩個用於部署 HAProxy 的網路組態選項:預設前端。預設網路具有 2 個 NIC:一個用於管理網路,另一個用於工作負載網路。前端網路具有 3 個 NIC:管理網路、工作負載網路,以及適用於用戶端的前端網路。此表列出每個網路的特性並加以說明。

對於生產安裝,建議使用 前端網路組態部署 HAProxy 負載平衡器。如果使用 預設組態部署 HAProxy 負載平衡器,建議將 /24 IP 位址區塊大小指派給工作負載網路。對於這兩個組態選項,不建議使用 DHCP。
網路 特性
管理
主管叢集使用管理網路連線至 HAProxy 負載平衡器並為其設計程式。
  • HAProxy 數據平面 API 端點會繫結到已連線至管理網路的網路介面。
  • 指派給 HAProxy 控制平面虛擬機器的管理 IP 位址必須是管理網路上的靜態 IP,以便主管叢集能夠可靠地連線至負載平衡器 API。
  • HAProxy 虛擬機器的預設閘道應位於此網路上。
  • 應在此網路上執行 DNS 查詢。
工作負載
HAProxy 控制平面虛擬機器使用工作負載網路存取主管叢集和 Tanzu Kubernetes 叢集節點上的服務。
  • HAProxy 控制平面虛擬機器會將流量轉送至此網路上的主管和 Tanzu Kubernetes 叢集節點。
  • 如果 HAProxy 控制平面虛擬機器以預設模式 (兩個 NIC) 進行部署,則工作負載網路必須提供用來存取負載平衡器服務的邏輯網路。
  • 預設組態中,負載平衡器虛擬 IP 和 Kubernetes 叢集節點 IP 將來自此網路。將其定義為網路中的單獨且不重疊的範圍。
備註: 工作負載網路必須與管理網路位於不同的子網路上。請參閱 系統需求
前端 (選用)

存取叢集工作負載的外部用戶端 (例如使用者或應用程式) 使用前端網路存取使用虛擬 IP 位址的後端負載平衡服務。

  • 僅當 HAProxy 控制平面虛擬機器使用三個 NIC 部署時,才會使用前端網路。
  • 建議用於生產安裝。
  • 前端網路是公開虛擬 IP 位址 (VIP) 的位置。HAProxy 將平衡流量並轉送到相應的後端。

下圖說明使用前端網路拓撲的 HAProxy 部署。此圖指出了安裝和設定程序期間的預期組態欄位。

""

具有一個工作負載網路且 HA Proxy 具有兩個虛擬 NIC 的主管叢集拓撲

在此拓撲中,您可以為下列元件設定具有一個工作負載網路的主管叢集

  • Kubernetes 控制平面虛擬機器
  • Tanzu Kubernetes 叢集的節點。
  • 外部服務和 DevOps 使用者連線的 HAProxy 虛擬 IP 範圍。在此組態中,會使用兩個虛擬 NIC 部署 HAProxy (預設組態),一個連線至管理網路,另一個連線至主要工作負載網路。您必須計畫在主要工作負載網路的單獨子網路上配置虛擬 IP。
您可以將一個連接埠群組指定為 主管叢集 的主要工作負載網路,然後使用與 vSphere 命名空間 的工作負載網路相同的連接埠群組。 主管叢集Tanzu Kubernetes 叢集、HAProxy、DevOps 使用者和外部服務都連線至設定為主要工作負載網路的同一個分散式連接埠群組。
圖 1. 由一個網路支援的 主管叢集

由一個網路支援的主管叢集
DevOps 使用者或外部應用程式的流量路徑如下所示:
  1. DevOps 使用者或外部服務會將流量傳送到分散式連接埠群組的工作負載網路子網路上的虛擬 IP。
  2. HAProxy 將虛擬 IP 流量負載平衡到 Tanzu Kubernetes 節點 IP 或控制平面虛擬機器 IP。HAProxy 宣告虛擬 IP 位址,以便可以對傳入該 IP 的流量進行負載平衡。
  3. 控制平面虛擬機器或 Tanzu Kubernetes 叢集節點會將流量傳輸至在 主管叢集Tanzu Kubernetes 叢集內分別執行的目標網繭。

具有一個隔離工作負載網路且 HA Proxy 具有兩個虛擬 NIC 的主管叢集拓撲

在此拓撲中,您為下列元件設定網路:
  • Kubernetes 控制平面虛擬機器。主要工作負載網路,會處理 Kubernetes 控制平面虛擬機器的流量。
  • Tanzu Kubernetes 叢集節點。工作負載網路。指派給 主管叢集 上的所有命名空間。此網路會連線 Tanzu Kubernetes 叢集節點。
  • HAProxy 虛擬 IP。在此組態中,會使用兩個虛擬 NIC 部署 HAProxy 虛擬機器 (預設組態)。您可以將 HAProxy 虛擬機器連線至主要工作負載網路或用於命名空間的工作負載網路。您也可以將 HAProxy 連線至已存在於 vSphere 中且可路由至主要網路和工作負載網路的虛擬機器網路。
主管叢集 將連線至支援主要工作負載網路的分散式連接埠群組,而 Tanzu Kubernetes 叢集會連線至支援工作負載網路的分散式連接埠群組。兩個連接埠群組必須可進行第 3 層路由。您可以透過 VLAN 執行第 2 層隔離。可透過 IP 防火牆和閘道進行第 3 層流量篩選。
圖 2. 具有隔離工作負載網路的 主管叢集

具有隔離工作負載網路的主管叢集
DevOps 使用者或外部服務的流量路徑如下所示:
  1. DevOps 使用者或外部服務會將流量傳送至虛擬 IP。流量將路由至已連線 HAProxy 的網路。
  2. HAProxy 將虛擬 IP 流量負載平衡到 Tanzu Kubernetes 節點 IP 或控制平面虛擬機器。HAProxy 將會宣告虛擬 IP 位址,以便可以對傳入該 IP 的流量進行負載平衡。
  3. 控制平面虛擬機器或 Tanzu Kubernetes 叢集節點會將流量傳輸至在 Tanzu Kubernetes 叢集內執行的目標網繭。

具有多個工作負載網路且 HA Proxy 具有兩個虛擬 NIC 的主管叢集拓撲

在此拓撲中,您可以設定一個連接埠群組以用作主要工作負載網路,並設定專用連接埠群組以用作每個命名空間的工作負載網路。會使用兩個虛擬 NIC 部署 HAProxy (預設組態),您可以將其連線至主要工作負載網路或任何工作負載網路。您也可以使用可路由至主要網路和工作負載網路的現有虛擬機器網路。

此拓撲中 DevOps 使用者和外部服務的流量路徑與隔離工作負載網路拓撲相同。
圖 3. 由多個隔離工作負載網路支援的 主管叢集

由多個隔離工作負載網路支援的主管叢集

具有多個工作負載網路且 HA Proxy 具有三個虛擬 NIC 的主管叢集拓撲

在此組態中,您可以使用三個虛擬 NIC 部署 HAProxy 虛擬機器,從而將 HAProxy 連線至前端網路。DevOps 使用者和外部服務可透過前端網路上的虛擬 IP 存取 HAProxy。對於生產環境,建議使用三個虛擬 NIC 部署 HA Proxy。
圖 4. 使用三個虛擬 NIC 部署的 HAProxy

使用三個虛擬 NIC 部署的 HAProxy

在可能的拓撲之間進行選取

在每個可能的拓撲之間進行選取之前,請評估您環境的需求:

  1. 主管叢集Tanzu Kubernetes 叢集之間是否需要第 2 層隔離?
    1. 否:具有一個為所有元件提供服務之工作負載網路的最簡單拓撲。
    2. 是:具有單獨主要網路和工作負載網路的隔離的工作負載網路拓撲。
  2. Tanzu Kubernetes 叢集之間是否需要進一步的第 2 層隔離?
    1. 否:具有單獨主要網路和工作負載網路的隔離的工作負載網路拓撲。
    2. 是:針對每個命名空間和專用主要工作負載網路,具有單獨工作負載網路的多個工作負載網路拓撲。
  3. 是否要防止您的 DevOps 使用者和外部服務直接路由至 Kubernetes 控制平面虛擬機器和 Tanzu Kubernetes 叢集節點?
    1. 否:兩個 NIC HAProxy 組態。
    2. 是:三個 NIC HAProxy 組態。建議針對生產環境使用此組態