使用 Citrix 进行负载平衡

本页面介绍如何为 GKE On-Prem 集群配置 Citrix 负载平衡器

GKE On-Prem 集群可以通过两种负载平衡模式之一运行:集成模式或手动模式。要使用 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,输入您选择的数字。

完成上述步骤七次,以便为本部分开头列出的每个组件创建一个服务组。

配置虚拟服务器

此时,您有 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,输入您的虚拟服务器的 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 地址。

修改 GKE On-Prem 配置文件

在安装 GKE On-Prem 之前,请修改您的 GKE On-Prem 配置文件和您的静态 IP 地址 YAML 文件以包含静态 IP 地址、VIP 地址和节点端口值。