使用 Citrix 进行负载均衡

本页面介绍了如何为 Anthos Clusters on VMware (GKE On-Prem) 集群配置 Citrix 负载均衡器

Anthos Clusters on VMware 集群可以通过三种负载均衡模式之一运行:集成模式、捆绑模式或手动模式。要使用 Citrix 负载均衡器,请使用手动负载均衡模式

Citrix Netscaler 版本

本主题中的说明适用于 Citrix NetScaler VPX 1000 型号 12.0 版。

如果您使用的是 Citrix 负载均衡器的其他版本或型号,界面可能会有所不同。

所有手动负载均衡通用步骤

在配置 Citrix 负载均衡器之前,请先执行以下步骤,这些步骤对于所有手动负载均衡配置都是通用的:

创建 Citrix ADC 实例

如需创建 Citrix 应用交付控制器 (ADC),请执行以下步骤:

添加网络适配器

您的 Citrix ADC 虚拟机有一个网络适配器,并且该适配器与虚拟机的管理 IP 地址相关联。现在,您需要向 Citrix ADC 虚拟机添加一个或两个额外的网络适配器。

一种可能是创建单臂配置。在此类配置中,Citrix ADC 虚拟机除管理网络适配器外还有一个网络适配器。这个额外的网络适配器连接到具有集群节点的子网。您可以通过互联网访问此子网中的 IP 地址。

另一种可能是创建双臂配置。在此类配置中,Citrix ADC 虚拟机除管理网络适配器外还有两个网络适配器。其中一个额外的网络适配器连接到具有集群节点的专用子网。另一个额外的网络适配器连接到允许外部请求访问 Citrix 负载均衡器的子网。这可以是可从互联网直接访问的子网,也可以是受 Jumpbox 保护的互联网子网。

下图显示了双臂配置的示例:

双臂配置示意图
双臂配置(点击可放大)

如需将一个或两个网络适配器添加到您的 Citrix ADC 虚拟机,请使用 vSphere 界面。

  1. 在左侧窗格中,找到您的 Citrix ADC 虚拟机。

  2. 右键点击您的 Citrix ADC 虚拟机,然后选择 Edit Settings(编辑设置)。

修改 Citrix ADC 虚拟机的屏幕截图
修改 Citrix ADC 的属性(点击可放大)
  1. 对于 New device(新设备),打开 Select(选择)菜单,然后选择 Network(网络)。点击 Add(添加)。

  2. 在左侧窗格中,展开 New Network(新网络)。对于 VM Network(虚拟机网络),选择要连接新网络适配器的子网。

  3. 根据需要进行其他设置,然后点击 OK(确定)。

使用 Terraform 配置 Citrix ADC

Citrix 提供了一个 Terraform 脚本,以便使用初次集群设置的服务器、服务组和虚拟服务器自动配置 Citrix ADC。

如果需要,您可以选择按照以下手动步骤操作。

配置服务器

回想一下,您已经拥有要用于集群节点的 IP 地址列表。在本部分中,您将其中每个 IP 地址与一个名称关联。

在浏览器中,输入 Citrix 虚拟机的管理 IP 地址。这会打开您的 Citrix 负载均衡器的网页界面。在 Citrix 界面中,用来表示集群节点的术语是“服务器”

打开 Configuration(配置)标签页。

在左侧窗格中,前往 Traffic Management(流量管理)> Load Balancing(负载均衡)> Servers(服务器)

在 Citrix 界面中添加服务器的屏幕截图
在 Citrix 界面中添加服务器(点击可放大)

对于要创建的每个管理员集群节点和每个用户集群节点,请执行以下步骤:

  1. 在主窗格中,点击 Add(添加)。

  2. 输入节点的名称和 IP 地址。

  3. 点击 Create(创建)。

配置服务组

在 Citrix 界面中,一个服务组包括一组服务器、一个协议和一个端口号。示例如下:

({admin_node_1, admin_node_2, admin_node_3}, TCP, 30001)

在本部分中,您将为以下各项创建服务组:

  • 管理员集群控制层面
  • 管理员集群插件管理器
  • 用户集群控制层面
  • 用户集群 HTTP Ingress 控制器
  • 用户集群 HTTPS Ingress 控制器

在每个服务组中,协议为 TCP。VIP 地址是您之前预留的地址。端口是您之前预留的 nodePort 值。

例如,假设以下是用户集群节点的名称:

  • user_node_1
  • user_node_2
  • user_node_3

此外,还假设您已选择使用 203.0.113.1 作为 HTTP 用户集群 Ingress 控制器的 VIP 地址。您已选择将 32001 作为 HTTP 用户集群 Ingress 控制器的 nodePort 值。然后,您需要创建以下服务组:

({user_node_1, user_node_2, user_node_3}, TCP, 32001)

要在 Citrix 网页界面中创建服务组,请执行以下步骤:

  1. 在左侧窗格中,前往 Traffic Management(流量管理)> Load Balancing(负载均衡)> Service Groups(服务组)
在 Citrix 界面中添加服务组的屏幕截图(点击可放大)
在 Citrix 界面中添加服务组(点击可放大)
  1. 在主窗格中,点击 Add(添加)。

  2. 输入服务组的名称。

  3. 对于 Protocol(协议),选择 TCP

  4. 点击 OK(确定)。

  5. Service Group Members(服务组成员)下,点击标有 No Service Group Member(无服务组成员)的栏。

  6. 在页面顶部,选择 Server Based(基于服务器)。

  7. Select Server(选择服务器)下,点击相应的复选框。

  8. 在服务器名称列表中,选择要加入服务组的服务器。然后,点击 Select(选择)。

  9. 对于 Port(端口),输入服务组的 nodePort 值。

  10. 对于 Hash Id,输入您选择的数字。

对要创建的每个服务组重复上述步骤。您应该为以下每个组件创建一个服务组:管理员集群控制平面、管理员集群插件管理器、用户集群控制平面、用户集群 HTTP Ingress 控制器和用户集群 HTTPS Ingress 控制器。每个用户集群都需要有自己的用户集群 HTTP Ingress 控制器和用户集群 HTTPS Ingress 控制器的服务组。

配置虚拟服务器

此时,您有 7 个服务组。在本部分中,您将每个服务组与 VIP 地址、协议和端口相关联。

例如,假设情况如下:

  • 您的用户集群 HTTP Ingress 控制器的服务组名为 user_http_ingress

  • 您已选择使用 203.0.113.1 作为用户集群 HTTP Ingress 控制器的 VIP 地址。您还希望负载均衡器在 TCP 端口 80 上监听发送到此 VIP 地址的请求。

  • 您已选择将 32001 用作用户集群 HTTP Ingress 控制器的 nodePort 值。

然后,您可以创建以下关联:

user_http_ingress --> (203.0.113.1, TCP, 80)

在 Citrix 界面中,这种类型的关联称为“虚拟服务器”

要在 Citrix 网页界面中创建虚拟服务器,请执行以下步骤:

  1. 在左侧窗格中,转到 Traffic Management(流量管理)> Load Balancing(负载均衡)> Virtual Servers(虚拟服务器)
在 Citrix 界面中添加虚拟服务器的屏幕截图(点击可放大)
在 Citrix 界面中添加虚拟服务器(点击可放大)
  1. 在主窗格中,点击 Add(添加)。

  2. 输入虚拟服务器的名称。

  3. 对于 Protocol(协议),选择 TCP

  4. 对于 IP Address(IP 地址),输入您的虚拟服务器的 VIP 地址。

  5. 对于 Port(端口),输入虚拟服务器的 TCP 端口。负载均衡器将在此 TCP 端口上监听发送到 VIP 地址的请求。

  6. Load Balancing Virtual Server(负载均衡虚拟服务器)页面的 Services and Service Groups(服务与服务组)下,点击 No Load Balancing Virtual Server Service Group Binding(无负载均衡服务器服务组绑定)。

  7. Select Service Group Name(选择服务组名称)下,点击相应的复选框。

  8. 为虚拟服务器选择所需的服务组。

  9. 在页面顶部,点击 Select(选择)。

  10. 点击 Bind(绑定)。

完成上述步骤七次,以便为七个服务组中的每个服务组都配置一个虚拟服务器。

验证配置

要验证您的 VIP 地址是否已在 Citrix ADC 上进行配置,请 ping 您的每个 VIP 地址。

修改 Anthos Clusters on VMware 配置文件

在安装 Anthos clusters on VMware 之前,请修改配置文件,在其中添加静态 IP 地址、VIP 和节点端口值。