NSX Advanced Load Balancer REST API 提供了用于管理控制器集群的命令。本节介绍了使用 API 配置控制器集群的步骤。

获取 NSX Advanced Load Balancer 控制器 集群配置

要获取现有的集群配置,请发送如下 API 请求:

GET /api/cluster

以下是一个示例输出。

{
    url: "https://10.10.5.27/api/cluster",
    uuid: "cluster-005056ac9e91",
    name: "cluster-0-1",
    tenant_ref: "https://10.10.5.27/api/tenant/admin",
    virtual_ip: {
        type: "V4",
        addr: "10.10.5.27"
    },
    nodes: [
        {
            ip: {
                type: "V4",
                addr: "10.10.5.16"
            },
            vm_hostname: "node1.controller.local",
            vm_uuid: "005056ac9e91",
            name: "10.10.5.16",
        }
    ]
}

在此示例中,集群仅包含一个成员。安装 NSX Advanced Load Balancer 后,在安装期间创建的控制器将作为主控制器放置在集群中。管理 IP 地址将配置为集群 IP 地址。

向集群中添加 NSX Advanced Load Balancer 控制器 节点

要创建一个 3 节点集群,请发送如下请求,以便向集群中再添加两个控制器节点。

对于 controller-ip,请指定单个控制器节点的管理 IP 地址,而不是要分配给集群的 IP 地址。集群 IP 在 virtual_ip 下指定。

PUT /api/cluster

以下是 PUT 数据示例。

{
    uuid: "cluster-005056ac9e91",
    name: "cluster-0-1",
    virtual_ip: {
        type: "V4",
        addr: "10.10.5.27"
    },
    nodes: [
        {
            ip: {
                type: "V4",
                addr: "10.10.5.16"
            },
            vm_hostname: "node1.controller.local",
            vm_uuid: "005056ac9e91",
            name: "10.10.5.16",
        },
        {
            ip: {
                type: "V4",
                addr: "10.10.5.15"
            },
            name: "10.10.5.15",
        },
        {
            ip: {
                type: "V4",
                addr: "10.10.5.17"
            },
            name: "10.10.5.17",
        }
    ]
}

从集群中移除 NSX Advanced Load Balancer 控制器 节点

要从集群中移除控制器节点,请使用如下请求。

PUT /api/cluster

以下是 PUT 数据示例。

{
    uuid: "cluster-005056ac9e91",
    name: "cluster-0-1",
    virtual_ip: {
        type: "V4",
        addr: "10.10.5.27"
    },
    nodes: [
        {
            ip: {
                type: "V4",
                addr: "10.10.5.16"
            },
            name: "10.10.5.16",
        }
    ]
}

获取集群的运行时信息

以下请求用于获取集群的运行时信息。

当 cluster_state 为 CLUSTER_UP_HA_ACTIVE(对于三节点集群)或 CLUSTER_UP_NO_HA(对于单节点集群)时,集群即可正常运行。

此示例显示的是 CLUSTER_UP_HA_ACTIVE

GET /api/cluster/runtime

{
    node_info: {
        uuid: "005056ac115e",
        mgmt_ip: "10.10.5.15",
        has_config: "True",
        ip: "node2.controller.local",
        vm_mor: "vm-54736",
        version: "16.1.1(9014) 2016-03-26 01:05:26 UTC",
        vm_uuid: "005056ac115e"
    },
    node_states: [
        {
            up_since: "2016-03-26 16:06:21",
            state: "CLUSTER_ACTIVE",
            role: "CLUSTER_LEADER",
            name: "10.10.5.15"
        },
        {
            up_since: "2016-03-26 16:07:08",
            state: "CLUSTER_ACTIVE",
            role: "CLUSTER_FOLLOWER",
            name: "10.10.5.17"
        },
        {
            up_since: "2016-03-26 16:07:31",
            state: "CLUSTER_ACTIVE",
            role: "CLUSTER_FOLLOWER",
            name: "10.10.5.16"
        }
    ],
    service_states: [],
        cluster_state: {
        up_since: "2016-03-26 16:06:21",
        progress: 100,
        state: "CLUSTER_UP_HA_ACTIVE"
    }
}