您可以在处于主动/主动模式的 vSAN 延伸集群中配置和使用 NSX Advanced Load Balancer。
NSX Advanced Load Balancer 组件
NSX Advanced Load Balancer 包含以下组件:
- NSX Advanced Load Balancer Controller。控制器是单一管理和控制点,用于管理 NSX Advanced Load Balancer 服务引擎的生命周期和配置。此控制器通常部署在 主管 外部。
- Avi Kubernetes Operator (AKO)。AKO 监视 Kubernetes 资源,并与控制器通信以请求类型为 LoadBalancer 的相应服务。
- NSX Advanced Load Balancer 服务引擎。服务引擎是数据平面虚拟机,为 主管 和 主管 工作负载请求的负载均衡器服务实施虚拟服务。这些服务引擎通常部署在 主管 外部,并且必须可路由到工作负载所在的 vSphere 命名空间网络分布式虚拟端口组。服务引擎仅支持单副本部署。
有关安装和配置 NSX Advanced Load Balancer 的过程,请参见“安装和配置 vSphere IaaS 控制平面”。
在计划使用
NSX Advanced Load Balancer 时,请记住以下注意事项和限制:
- 创建服务引擎组
- 服务引擎是在服务引擎组中创建的。每个组充当一个隔离域,因为它包含与如何调整服务大小、放置服务以及实现高可用性相关的定义。 vSphere IaaS control plane 使用 Default-Group 模板按 主管 配置服务引擎组。。目前,AKO 已与 主管 集成,因此,当需要将类型为 LoadBalancer 的新服务协调到服务引擎时, NSX Advanced Load Balancer Controller 会自动根据 Default-Group 模板部署服务引擎。
- 在 HA 模式下部署 NSX Advanced Load Balancer Controller。
-
由于控制器是单一管理和控制点,因此建议将其部署在三节点集群中。控制器级别 HA 需要一个仲裁数才能正常运行。如果其中一个控制器节点出现故障,其余两个节点将继续处于活动状态,但如果两个节点出现故障,则整个集群都将出现故障。在将三个控制器节点分散到 vSAN 延伸集群的两个站点方面没有可用性优势。在下列情况下,站点容错保持相同:
- 站点 1 具有两个节点,站点 2 具有一个节点,且站点 1 出现故障,则整个集群都将出现故障。当站点 2 出现故障时,站点故障容错概率为 50%。
- 三个节点全部放置在同一站点上。当没有节点的站点出现故障时,站点故障容错概率为 50%。
将三个控制器节点全部放置在同一站点上有助于降低延迟,因为三个控制器会不断相互交换信息,并且要求往返时间少于 20 毫秒。
主动/主动部署中 NSX Advanced Load Balancer 组件的放置
- NSX Advanced Load Balancer Controller
-
在 vSAN 延伸集群的同一站点上,将三个
NSX Advanced Load Balancer 控制器部署为 HA 集群。
通常,NSX Advanced Load Balancer 控制器部署在 主管 或工作负载集群外部,如果这些控制器仅用于工作负载,则不能部署在 vSAN 延伸集群上。但是,您可以在 vSAN 延伸拓扑中部署 NSX Advanced Load Balancer。
由于 Default-Group 的限制,如果多个 主管 共享同一 NSX Advanced Load Balancer Controller,则该控制器会协调来自同一 Default-Group 服务引擎组的服务,这意味着服务引擎在 主管 之间共享。为避免在 主管 之间共享服务引擎,您可能需要为每个 主管 部署不同的 NSX Advanced Load Balancer Controller。在这种情况下,NSX Advanced Load Balancer Controller 可能与运行 主管 的同一 vSAN 延伸集群中的工作负载一起运行。
- NSX Advanced Load Balancer 服务引擎
- Default-Group 的服务引擎可以在工作负载集群上运行,也可以在其外部运行。在任一场景中,请在 vSAN 延伸集群的站点 1 和站点 2 之间均匀部署服务引擎。
主动/主动部署中 NSX Advanced Load Balancer 组件的主机关联性规则
- NSX Advanced Load Balancer Controller
-
执行下列步骤:
- 创建具有三个控制器的虚拟机组。例如,AviControllerVmGroup。
- 创建一个包含站点 1 的所有 ESXi 主机的主机组。例如,HostGroup-A。
- 在 AviControllerVmGroup 和 HostGroup-A 之间创建一条 should 虚拟机-主机关联性规则。
- 如果每个站点具有至少三个 ESXi 主机,请在三个控制器虚拟机之间创建虚拟机-虚拟机反关联性规则。有关详细信息,请参见 VCF 文档。
注: 在每个站点中的主机少于三个时创建反关联性规则可能会阻止打开一个或多个控制器的电源。
- NSX Advanced Load Balancer 服务引擎
-
执行下列步骤:
- 为 Default-Group 的一半服务引擎虚拟机创建虚拟机组。例如,AviSEVmGroup-A。
- 为 Default-Group 的其余服务引擎虚拟机创建虚拟机组。例如,AviSEVmGroup-B。
- 按照放置一节中所述,将服务引擎部署到这两个组。
- 在 AviSEVmGroup-A 和 HostGroup-A 之间创建一条 should 虚拟机-主机关联性规则。
- 在 AviSEVmGroup-B 和 HostGroup-B 之间创建一条 should 虚拟机-主机关联性规则。
- 创建反关联性规则,以将服务引擎放置在不同的主机上。
注: 如果需要创建的服务引擎数多于 ESXi 主机数,反关联性规则可能不允许进行虚拟机放置、vMotion 和重新启动。