Product Documentation

使用 NetScaler MAS 将 NetScaler CPX 实例与 Mesos、Marathon、InfoBlox 和 Nuage 集成

2016 年 6 月 30 日

作为网络管理员,您可以使用 Marathon 调度程序在 Mesos 群集中部署您的应用程序、置备多个 NetScaler CPX 实例以及将向应用程序执行流量的负载平衡。可以使用 Nuage VSP 解决方案来提供与您的部署中每个应用程序和 NetScaler CPX 实例的网络连接,还可以使用 InfoBlox 解决方案来设置您的部署中的 DNS 服务。

通过使用 NetScaler MAS,可以管理、监视及查看您的 NetScaler CPX 实例和应用程序。

为了进行此部署,请执行以下任务:

  1. 设置 Mesos 和 Marathon 主从群集。必须在 Ubuntu 主机上配置每个应用程序和 NetScaler CPX 实例,且这些主机必须配置为 Mesos 从属主机。必须将 Ubuntu 主机配置为 Mesos 主要主机,并将 Marathon 安装在 Mesos 主要主机上。有关详细信息,请参阅 https://open.mesosphere.com/getting-started/install/
  2. 必须将您的应用程序和 NetScaler CPX 实例的映像存储在所有 Mesos 从属主机上。
  3. 之后可以使用 Marathon CLI 或 Marathon GUI 启动您的应用程序和 NetScaler CPX 实例。请注意,Marathon 是将 NetScaler CPX 实例作为应用程序启动。有关在 Marathon 上运行应用程序的详细信息,请参阅 https://mesosphere.github.io/marathon/docs/application-basics.html
  4. 对 Nuage VSP 解决方案设置 VIP 子网。VIP 子网必须足够大以满足将来所有 Mesos 应用程序的 VIP 需求。任何 Mesos 应用程序都不得使用 VIP 子网,且不得在其上创建 Nuage 端点 (vport)。
  5. 对 InfoBlox 解决方案设置 DNS 服务器以进行 DNS 解析。
  6. 向 NetScaler MAS 注册应用程序、Marathon 调度程序、Nuage 和 InfoBlox 详细信息。
  7. 将 NetScaler CPX 实例添加到 NetScaler MAS。

注意事项

  1. NetScaler CPX IP 地址(管理 IP 地址)在 Mesos 群集中必须完全可以路由。
  2. 在 Mesos 从属主机上置备 NetScaler CPX 实例时,必须指定以下详细信息:
    • NetScaler MAS 主机名或 IP 地址
    • NetScaler MAS 管理员用户名和密码
    • 将对 NetScaler CPX 实例配置以进行 DNS 解析的 DNS 服务器名称
  3. 应用程序和 Nuage 子网之间必须有一对一的映射。
  4. NetScaler CPX 必须连接到使用 Mesos 从属主机上运行的 Nuage Docker 监视器的网络。
  5. 只有 Marathon 应用程序任务(应用程序的 VIP 地址的 IP:端口成员)必须在与之关联的子网中。
  6. 必须在其中一个 Marathon 标签中指定 Marathon 应用程序端口。

使用 Marathon GUI 启动应用程序和 NetScaler CPX 实例

可以在浏览器中键入 Marathon IP 地址和端口来访问 Marathon GUI。默认情况下,Marathon 端口是 8080。

要启动应用程序和 NetScaler CPX 实例,请执行以下操作

1. 登录 Marathon GUI。

2. 在 Applications(应用程序)选项卡上的左上窗格中,单击 Create(创建)。

3. 在 New Application(新建应用程序)屏幕中的 Docker container settings(Docker 容器设置)、Environment variables(环境变量)、Labels(标签)、Health checks(运行状况检查)和 Optional settings(可选设置)部分中指定参数。

注意

在 Mesos 和 Marathon 环境中,仅支持在主机网络连接模式下运行 NetScaler CPX 实例。因此,如果要启动 NetScaler CPX 实例,请在 Docker container settings(Docker 容器设置)部分的 Network(网络)列表中选择 Host(主机)。

本地化后的图片

4. 单击 + Create(+ 创建)。

5. 启动的应用程序显示在 Applications(应用程序)下。

本地化后的图片

向 NetScaler MAS 注册应用程序、Marathon 调度程序、Nuage 和 InfoBlox 详细信息

您必须向 NetScaler MAS 注册您的应用程序、Marathon 调度程序、Nuage 和 InfoBlox 解决方案的详细信息,才能成功部署 NetScaler CPX 实例。

您必须以某种方式配置您的网络,以便 NetScaler CPX 实例可以打开与 NetScaler MAS 的连接。NetScaler CPX 容器启动并从 Nuage 环境中获取管理 IP 地址之后,便立即使用安全连接向 NetScaler MAS 发送注册请求。

在注册过程中,NetScaler MAS 会了解 NetScaler CPX 实例和它可以访问的 IP 地址或端口,以使用 NITRO REST API 进行配置。之后,NetScaler MAS 开始监视其运行状况。

向 NetScaler MAS 注册详细信息

  1. 登录 NetScaler MAS。
  2. 导航到 Orchestration(调配)> Container Orchestration(容器调配)> Mesos Configuration(Mesos 配置),然后单击 Add(添加)。
  3. Application Settings(应用程序设置)下方指定以下参数:
    • App Default Domain Suffix(应用程序默认域后缀)。用于创建 DNS 名称以便在 InfoBlox 中配置应用程序的域后缀。
    • VIP Subnet Name(VIP 子网名称)。NetScaler MAS 用来为应用程序分配 VIP 的 Nuage 子网的名称。必须先在 Nuage 系统上创建此子网,然后再向 NetScaler MAS 注册该子网。
  4. Marathon Scheduler Details(Marathon 调度程序详细信息)下方指定 Marathon URL、用户名和密码。
  5. Nuage Details(Nuage 详细信息)下方指定 VSD URL、用户名、密码和 VSD 企业 ID。
  6. InfoBlox 下方指定 InfoBlox URL、用户名和密码。
  7. /etc/resolv.conf 文件中添加 InfoBlox DNS IP 地址和域搜索路径。
    注意:重新启动 NetScaler Management and Analytics System 时,为了将 InfoBlox DNS IP 地址和域搜索路径保留在 /etc/resolv.conf 文件中,请在 /mpsconfig/svm.conf 文件中更新以下内容: */mps/changenameserver.sh <DNS IP 地址 1> <DNS IP address2> echo “search " >> /etc/resolv.conf*域名>
  8. 使用 JSON 脚本文件启动 NetScaler CPX 实例。下面是示例 JSON 脚本文件:
    注意: 请务必在您的 JSON 脚本文件中包括以下行: "cmd" : "cd /var/netscaler/bins/ ; sed -i 's/\# Creating NSPPE startup conf, Read By PE/\# Creating NSPPE startup conf, Read By PE\\\\necho \\"$NSIP $HOSTNAME\\" \>\> \\\\\\/etc\\\\\\/hosts/' ./docker\_startup.sh ; bash -C ./docker\_startup.sh ; bash",

示例 JSON 脚本

    curl -X POST http://10.xx.xx.62:8080/v2/apps -d @cpx_nuage_custom_etchostcorrection.json -H "Content-type: application/json"

    {
          "id": "cpx-host3",
          "cpus": 1,
          "mem": 1024,
          "instances": 2,
          "cmd" : "cd /var/netscaler/bins/ ; sed -i 's/# Creating NSPPE startup conf, Read By PE/# Creating NSPPE startup conf, Read By PE\necho "$NSIP $HOSTNAME" >> \/etc\/hosts/' ./docker_startup.sh ; bash -C ./docker_startup.sh ; bash",
          "constraints": [["hostname", "UNIQUE"]],
          "container": {
               "type": "DOCKER",
               "docker": {
                        "image": “cpx:11.1.40.3",
                        "network": "NONE",
                        "privileged": true,
                        "parameters": [
                            { "key": "tty", "value": "true" }
                        ]
                    }
          },
          "env": {
           "NUAGE-ENTERPRISE": "<nuage_enterprise>",
           "NUAGE-DOMAIN" : "<nuage_domain>",
           "NUAGE-ZONE":"<nuage_zone>",
           "NUAGE-NETWORK":"<nuage_network>",
           "NUAGE-USER":"<nuage_user>",
       "NS_MGMT_SERVER":"<NMAS_server_IP>"
          },
          "labels": {
                     "NETSCALER_AS_APP": "true"
          }
    }

其中:

  • <nuage_enterprise> 是 Nuage 企业名称。
  • <nuage_domain> 是 Nuage 域名。
  • <nuage_zone> 是 Nuage 区域名称。
  • <nuage_network> 是 Nuage 网络详细信息。
  • <nuage_user> 是 Nuage 管理员用户名。
  • <NMAS_server_IP> 是 NetScaler MAS 服务器 IP 地址。

使用 NetScaler MAS 将 NetScaler CPX 实例与 Mesos、Marathon、InfoBlox 和 Nuage 集成