NSX Advanced Load Balancer REST API は、Controller クラスタを管理するためのコマンドを提供します。このセクションでは、API を使用して Controller クラスタを構成する手順について説明します。

NSX Advanced Load Balancer Controller クラスタ構成の取得

既存のクラスタ構成を取得するには、次のように 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",
        }
    ]
}

この例では、クラスタに含まれるメンバーは 1 つのみです。NSX Advanced Load Balancer がインストールされると、インストール中に作成されたコントローラがプライマリ コントローラとしてクラスタに配置されます。管理 IP アドレスは、クラスタ IP アドレスとして構成されます。

クラスタへの NSX Advanced Load Balancer Controller ノードの追加

3 ノード クラスタを作成するには、次のような要求を送信して、さらに 2 台のコントローラ ノードをクラスタに追加します。

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 Controller ノードの削除

クラスタからコントローラ ノードを削除するには、次のような要求を使用します。

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(3 ノード クラスタの場合)または CLUSTER_UP_NO_HA(1 ノード クラスタの場合)の場合、クラスタは動作可能です。

この例では 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"
    }
}