在 Kubernetes 环境中部署 NetScaler CPX

2016 年 6 月 30 日

可以将 NetScaler CPX 集成到 Kubernetes 部署中来对群集环境中的容器化应用程序执行负载平衡。有关 Kubernetes 的信息,请参阅 http://kubernetes.io/docs/

在 Kubernetes 环境中,NetScaler CPX 替换工作节点 (minion) 上的 kube 代理,在提供点 (pod) 中容器之间执行负载平衡。在支持 Kubernetes 的情况下启动时,NetScaler CPX 以特权主机模式启动,NetScaler IP 地址为 192.168.0.1。它会清除其主机上的配置和 iptable、在 Kubernetes 中查询服务和端点的当前状态以及侦听 Kubernetes 框架中以下事件流中的事件:

  • 服务通道。NetScaler CPX 使用此通道中的信息来确定所需的虚拟服务器数。它为每个服务创建虚拟服务器,并为每台虚拟服务器分配虚拟 IP 地址 192.168.0.2。这些虚拟服务器根据从 20000–30000 范围选择的临时端口号进行区分。NetScaler CPX 还创建 iptable 规则,已将发往群集 IP 地址的流量重新导向至各虚拟 IP 地址。
  • 端点通道。NetScaler CPX 使用此通道中的信息来配置绑定到虚拟 IP 地址的服务组中的服务组成员,从而为应用程序实例执行负载平衡。

NetScaler CPX 不保存它为服务创建的 NetScaler 配置。

注意

为服务分配的 IP 地址范围不得与 NetScaler IP 地址及随后的三个 IP 地址冲突。

下图说明了在 Kubernetes 环境中 NetScaler CPX 如何工作。

本地化后的图片

开始安装 NetScaler CPX 实例之前,请确保您符合以下情况:

  • Docker 安装在 Linux 主机系统上。
    要安装 Docker,请在 Linux shell 提示窗口中运行以下命令:
    curl –ssl https://get.docker.com/ | sh

有关在 Linux 上安装 Docker 的详细信息,请参阅 https://docs.docker.com/engine/installation/ubuntulinux/

  • Docker 主机有 Internet 连接。
  • 您以 root 用户身份登录。
  • Kubernetes 环境已设置,所有群集节点都已配置。
  • 将 NetScaler CPX docker 映像添加到 Kubernetes 环境中的所有节点。

注意

您可以将 NetScaler CPX 实例与 kube 代理一起使用,但您只能在启动 kube 代理之后启动 NetScaler CPX,而且还需要确保 kube 代理未重新启动。

要在设置了 Kubernetes 的 docker 主机上安装 NetScaler CPX 实例,请运行以下命令:

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e kubernetes_url=“http://10.102.103.222:8080/api" cpx:latest

注意

如果 192.168.1.0/24 网络无法保留供 NetScaler CPX 使用,可以使用空闲的任何其他子网。将该子网中的第一个 IP 地址分配为 NetScaler IP (NSIP)。例如,如果要将 10.20.30.0/24 用作子网,请运行以下命令:

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e NS_IP=10.20.30.41 -e kubernetes_url="http://10.217.212.185:8080/api" cpx:latest

在 Kubernetes 环境中部署 NetScaler CPX

In this article