查看可为配置了 VDS 网络连接的 主管 的 HAProxy 负载均衡器实施的可能的拓扑。当 vSphere IaaS control plane 与 VDS 网络连接配合使用时,HAProxy 为访问 Tanzu Kubernetes Grid 控制平面的开发人员以及类型为“负载均衡器”的 Kubernetes 服务提供负载均衡。
主管 上的工作负载网络
要为 主管 配置 VDS 网络连接,必须将集群中的所有主机都连接到 VDS。根据为 主管 工作负载网络实施的拓扑,您将创建一个或多个分布式端口组。可以将端口组指定为 vSphere 命名空间 的工作负载网络。
主管 上的 Kubernetes 控制平面虚拟机使用分配给主工作负载网络的 IP 地址范围中的三个 IP 地址。Tanzu Kubernetes Grid 集群的每个节点都会被分配一个单独的 IP 地址,从配置了 Tanzu Kubernetes Grid 集群运行所在命名空间的工作负载网络的地址范围中进行分配。
IP 范围的分配
- 为 HAProxy 分配虚拟 IP 的范围。为 HAProxy 的虚拟服务器配置的 IP 范围由负载均衡器设备预留。例如,如果虚拟 IP 范围为
192.168.1.0/24
,则该范围内的所有主机都不能用于除虚拟 IP 流量之外的其他流量。注: 您不得在 HAProxy 虚拟 IP 范围内配置网关,因为到该网关的所有路由都将失败。 - 主管 和 Tanzu Kubernetes Grid 集群节点的 IP 范围。主管 中的每个 Kubernetes 控制平面虚拟机分配一个 IP 地址,总共三个 IP 地址。Tanzu Kubernetes Grid 集群的每个节点也分配一个单独的 IP。您必须为 主管 上配置到命名空间的每个工作负载网络分配一个唯一的 IP 范围。
包含一个 /24 网络的示例配置:
- 网络:192.168.120.0/24
- HAProxy VIP:192.168.120.128/25
- HAProxy 工作负载接口的 1 个 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 个网卡:一个用于管理网络,另一个用于工作负载网络。前端网络有 3 个网卡,分别用于管理网络、工作负载网络和客户端的前端网络。下表列出并介绍了每个网络的特性。
网络 | 特性 |
---|---|
管理 |
主管集群使用管理网络连接到 HAProxy 负载均衡器并制定计划。
|
工作负载 |
HAProxy 控制平面虚拟机使用工作负载网络访问主管集群和 Tanzu Kubernetes 集群节点上的服务。
注: 工作负载网络必须与管理网络位于不同的子网上。请参阅
系统要求。
|
前端(可选) | 访问集群工作负载的外部客户端(如用户或应用程序)通过前端网络使用虚拟 IP 地址访问后端负载均衡服务。
|
下图展示了使用前端网络拓扑的 HAProxy 部署。该图指明了安装和配置过程中配置字段应所在的位置。
具有一个工作负载网络且 HAProxy 具有两个虚拟网卡的 主管 拓扑
在此拓扑中,会针对以下组件配置具有一个工作负载网络的 主管:
- Kubernetes 控制平面虚拟机
- Tanzu Kubernetes Grid 集群的节点。
- 外部服务和 DevOps 用户连接的 HAProxy 虚拟 IP 范围。在此配置中,HAProxy 部署有两个虚拟网卡(默认配置),一个虚拟网卡连接到管理网络,另一个虚拟网卡连接到主工作负载网络。您必须计划在主工作负载网络中的一个单独子网上分配虚拟 IP。
- DevOps 用户或外部服务将流量发送到分布式端口组的工作负载网络子网上的虚拟 IP。
- HAProxy 对传输至 Tanzu Kubernetes Grid 集群节点 IP 或控制平面虚拟机 IP 的虚拟 IP 流量进行负载均衡。HAProxy 会声明虚拟 IP 地址,以便它能够对来到该 IP 的流量进行负载均衡。
- 控制平面虚拟机或 Tanzu Kubernetes Grid 集群节点分别将流量传送到在 主管 或 Tanzu Kubernetes Grid 集群内运行的目标 pod。
具有一个隔离工作负载网络且 HAProxy 具有两个虚拟网卡的 主管 拓扑
- Kubernetes 控制平面虚拟机。用于处理 Kubernetes 控制平面虚拟机的流量的主工作负载网络。
- Tanzu Kubernetes Grid 集群节点。分配给主管 上的所有命名空间的工作负载网络。此网络连接 Tanzu Kubernetes Grid 集群节点。
- HAProxy 虚拟 IP。在此配置中,HAProxy 虚拟机部署有两个虚拟网卡(默认配置)。可以将 HAProxy 虚拟机连接到主工作负载网络或用于命名空间的工作负载网络。还可以将 HAProxy 连接到 vSphere 中已存在且可路由到主工作负载网络和工作负载网络的虚拟机网络。
- DevOps 用户或外部服务将流量发送到虚拟 IP。流量路由到连接 HAProxy 的网络。
- HAProxy 对传输至 Tanzu Kubernetes Grid 节点 IP 或控制平面虚拟机的虚拟 IP 流量进行负载均衡。HAProxy 会声明虚拟 IP 地址,以便它能够对来到该 IP 的流量进行负载均衡。
- 控制平面虚拟机或 Tanzu Kubernetes Grid 集群节点将流量传送到在 Tanzu Kubernetes Grid 集群内运行的目标 pod。
具有多个工作负载网络且 HAProxy 具有两个虚拟网卡的 主管 拓扑
在此拓扑中,您可以将一个端口组配置为充当主工作负载网络,并将一个专用端口组配置为充当每个命名空间的工作负载网络。HAProxy 部署有两个虚拟网卡(默认配置),您可以将其连接到主工作负载网络,也可以连接到任一工作负载网络。还可以使用可路由到主工作负载网络和工作负载网络的现有虚拟机网络。
具有多个工作负载网络且 HAProxy 具有三个虚拟网卡的 主管 拓扑
在可能的拓扑之间进行选择
在每个可能的拓扑之间进行选择之前,请先评估环境的需求:
- 主管 和 Tanzu Kubernetes Grid 集群之间是否需要第 2 层隔离?
- 否:最简单的拓扑,其中一个工作负载网络为所有组件提供服务。
- 是:隔离的工作负载网络拓扑,其中具有单独的主工作负载网络和工作负载网络。
- Tanzu Kubernetes Grid 集群之间是否需要进一步的第 2 层隔离?
- 否:隔离的工作负载网络拓扑,其中具有单独的主工作负载网络和工作负载网络。
- 是:多个工作负载网络拓扑,其中每个命名空间有一个单独的工作负载网络,以及一个专用的主工作负载网络。
- 是否要防止 DevOps 用户和外部服务直接路由到 Kubernetes 控制平面虚拟机和 Tanzu Kubernetes Grid 集群节点?
- 否:两个网卡 HAProxy 配置。
- 是:三个网卡 HAProxy 配置。建议对生产环境使用此配置
在 vSphere IaaS control plane 中使用 HAProxy 负载均衡器的注意事项
规划采用 HAProxy 负载均衡器的 vSphere IaaS control plane 时,请记住以下注意事项。
- 需要与 HAProxy 签订支持合同,才能获得 HAProxy 负载均衡器的技术支持。VMware GSS 无法为 HAProxy 设备提供支持。
- HAProxy 设备是单例模式设备,无法实现高可用性拓扑。对于高可用性环境,VMware 建议使用完整安装的 NSX 或 NSX Advanced Load Balancer。
- 以后无法扩展用于前端的 IP 地址范围,这意味着网络的大小应满足所有未来增长的需求。