將 vSphere with Tanzu 與 vDS 網路搭配使用時,HAProxy 為開發人員存取 Tanzu Kubernetes 控制平面以及為負載平衡器類型的 Kubernetes 服務提供負載平衡。檢閱可以為 HAProxy 負載平衡器實作的可能拓撲。
主管叢集上的工作負載網路
若要設定具有 vSphere 網路堆疊的 主管叢集,則必須將叢集中的所有主機連線到 vSphere Distributed Switch。您可以建立一或多個分散式連接埠群組,具體取決於您為主管叢集工作負載網路實作的拓撲。您可以將連接埠群組作為工作負載網路指定給 vSphere 命名空間。
將主機新增到 主管叢集 之前,必須將其新增至屬於該叢集的所有 vSphere Distributed switch。
主管叢集 上的 Kubernetes 控制平面虛擬機器使用指派給主要工作負載網路的 IP 位址範圍中的三個 IP 位址。Tanzu Kubernetes 叢集的每個節點都有一個單獨的 IP 位址,該位址是從設定了 Tanzu Kubernetes 叢集執行所在命名空間的工作負載網路的位址範圍進行指派。
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 網路拓撲
有兩個用於部署 HAProxy 的網路組態選項:預設和前端。預設網路具有 2 個 NIC:一個用於管理網路,另一個用於工作負載網路。前端網路具有 3 個 NIC:管理網路、工作負載網路,以及適用於用戶端的前端網路。此表列出每個網路的特性並加以說明。
網路 | 特性 |
---|---|
管理 |
主管叢集使用管理網路連線至 HAProxy 負載平衡器並為其設計程式。
|
工作負載 |
HAProxy 控制平面虛擬機器使用工作負載網路存取主管叢集和 Tanzu Kubernetes 叢集節點上的服務。
備註: 工作負載網路必須與管理網路位於不同的子網路上。請參閱
系統需求。
|
前端 (選用) | 存取叢集工作負載的外部用戶端 (例如使用者或應用程式) 使用前端網路存取使用虛擬 IP 位址的後端負載平衡服務。
|
下圖說明使用前端網路拓撲的 HAProxy 部署。此圖指出了安裝和設定程序期間的預期組態欄位。
具有一個工作負載網路且 HA Proxy 具有兩個虛擬 NIC 的主管叢集拓撲
在此拓撲中,您可以為下列元件設定具有一個工作負載網路的主管叢集:
- Kubernetes 控制平面虛擬機器
- Tanzu Kubernetes 叢集的節點。
- 外部服務和 DevOps 使用者連線的 HAProxy 虛擬 IP 範圍。在此組態中,會使用兩個虛擬 NIC 部署 HAProxy (預設組態),一個連線至管理網路,另一個連線至主要工作負載網路。您必須計畫在主要工作負載網路的單獨子網路上配置虛擬 IP。
- DevOps 使用者或外部服務會將流量傳送到分散式連接埠群組的工作負載網路子網路上的虛擬 IP。
- HAProxy 將虛擬 IP 流量負載平衡到 Tanzu Kubernetes 節點 IP 或控制平面虛擬機器 IP。HAProxy 宣告虛擬 IP 位址,以便可以對傳入該 IP 的流量進行負載平衡。
- 控制平面虛擬機器或 Tanzu Kubernetes 叢集節點會將流量傳輸至在 主管叢集 或 Tanzu Kubernetes 叢集內分別執行的目標網繭。
具有一個隔離工作負載網路且 HA Proxy 具有兩個虛擬 NIC 的主管叢集拓撲
- Kubernetes 控制平面虛擬機器。主要工作負載網路,會處理 Kubernetes 控制平面虛擬機器的流量。
- Tanzu Kubernetes 叢集節點。工作負載網路。指派給 主管叢集 上的所有命名空間。此網路會連線 Tanzu Kubernetes 叢集節點。
- HAProxy 虛擬 IP。在此組態中,會使用兩個虛擬 NIC 部署 HAProxy 虛擬機器 (預設組態)。您可以將 HAProxy 虛擬機器連線至主要工作負載網路或用於命名空間的工作負載網路。您也可以將 HAProxy 連線至已存在於 vSphere 中且可路由至主要網路和工作負載網路的虛擬機器網路。
- DevOps 使用者或外部服務會將流量傳送至虛擬 IP。流量將路由至已連線 HAProxy 的網路。
- HAProxy 將虛擬 IP 流量負載平衡到 Tanzu Kubernetes 節點 IP 或控制平面虛擬機器。HAProxy 將會宣告虛擬 IP 位址,以便可以對傳入該 IP 的流量進行負載平衡。
- 控制平面虛擬機器或 Tanzu Kubernetes 叢集節點會將流量傳輸至在 Tanzu Kubernetes 叢集內執行的目標網繭。
具有多個工作負載網路且 HA Proxy 具有兩個虛擬 NIC 的主管叢集拓撲
在此拓撲中,您可以設定一個連接埠群組以用作主要工作負載網路,並設定專用連接埠群組以用作每個命名空間的工作負載網路。會使用兩個虛擬 NIC 部署 HAProxy (預設組態),您可以將其連線至主要工作負載網路或任何工作負載網路。您也可以使用可路由至主要網路和工作負載網路的現有虛擬機器網路。
具有多個工作負載網路且 HA Proxy 具有三個虛擬 NIC 的主管叢集拓撲
在可能的拓撲之間進行選取
在每個可能的拓撲之間進行選取之前,請評估您環境的需求:
- 在 主管叢集 和 Tanzu Kubernetes 叢集之間是否需要第 2 層隔離?
- 否:具有一個為所有元件提供服務之工作負載網路的最簡單拓撲。
- 是:具有單獨主要網路和工作負載網路的隔離的工作負載網路拓撲。
- 在 Tanzu Kubernetes 叢集之間是否需要進一步的第 2 層隔離?
- 否:具有單獨主要網路和工作負載網路的隔離的工作負載網路拓撲。
- 是:針對每個命名空間和專用主要工作負載網路,具有單獨工作負載網路的多個工作負載網路拓撲。
- 是否要防止您的 DevOps 使用者和外部服務直接路由至 Kubernetes 控制平面虛擬機器和 Tanzu Kubernetes 叢集節點?
- 否:兩個 NIC HAProxy 組態。
- 是:三個 NIC HAProxy 組態。建議針對生產環境使用此組態