NSX Container Plug-in (NCP) は、Docker イメージとして配信されます。NCP は、インフラストラクチャ サービスのノードで実行する必要があります。マスター ノードでの NCP の実行は推奨されません。

手順

  1. NCP Docker イメージをダウンロードします。
    ファイル名は nsx-ncp-xxxxxxx.tar です。 xxxxxxx はビルド番号です。
  2. NCP ReplicationController yaml テンプレートをダウンロードします。
    ファイル名は ncp-rc.yml です。このファイルを編集することも、独自のテンプレート ファイルの例として使用することもできます。
  3. NCP Docker イメージをイメージ レジストリにロードします。
        docker load -i <tar file>
  4. (オプション) NSXError オブジェクトのカスタム リソース定義の yaml テンプレートをダウンロードします。
    ファイル名は nsx-error-crd.yaml です。
  5. (オプション) カスタム リソースを作成します。
        kubectl create -f nsx-error-crd.yaml
  6. ncp-rc.yml を編集します。
    ロードされているイメージの名前を変更します。

    nsx_api_managers パラメータを指定します。単一の NSX Manager の IP アドレス、NSX Manager クラスタ内の 3 つの NSX Manager の IP アドレス(カンマ区切り)、または NSX Manager クラスタの仮想 IP アドレスを指定できます。次はその例です。

        nsx_api_managers = 192.168.1.180
    or
        nsx_api_managers = 192.168.1.181,192.168.1.182,192.168.1.183

    (オプション)[nsx_v3] セクションで ca_file パラメータを指定します。値は、NSX Manager サーバ証明書の確認に使用する CA バンドル ファイルにする必要があります。設定しないと、システムのルート CA が使用されます。nsx_api_managers に 1 つの IP アドレスを指定した場合は、CA ファイルを 1 つ指定します。nsx_api_managers に 3 つの IP アドレスを指定した場合は、1 つまたは 3 つの CA ファイルを指定できます。1 つの CA ファイルを指定した場合、3 つのマネージャすべてに使用されます。3 つの CA ファイルを指定した場合、それぞれが nsx_api_managers 内の対応する IP アドレスに使用されます。次はその例です。

        ca_file = ca_file_for_all_mgrs
    or
        ca_file = ca_file_for_mgr1,ca_file_for_mgr2,ca_file_for_mgr3

    NSX-T Data Center で認証を行うため、nsx_api_cert_filensx_api_private_key_file パラメータを指定します。

    nsx_api_cert_file は、PEM 形式のクライアント証明書ファイルのフル パスです。このファイルの内容は次のようになります。

        -----BEGIN CERTIFICATE-----
        <certificate_data_base64_encoded>
        -----END CERTIFICATE-----

    nsx_api_private_key_file は、PEM 形式のクライアント プライベート キー ファイルのフル パスです。このファイルの内容は次のようになります。

        -----BEGIN PRIVATE KEY-----
        <private_key_data_base64_encoded>
        -----END PRIVATE KEY-----

    Ingress Controller を NAT モードで実行するように設定するには、ingress_mode = nat パラメータを指定します。

    デフォルトでは、ポッドの論理スイッチ用に IP アドレス ブロックから割り当てられたすべてのサブネットに、サブネット プリフィックス 24 が使用されます。別のサブネット サイズを使用するには、[nsx_v3] セクションの subnet_prefix オプションを更新します。

    HA(高可用性)はデフォルトで有効になっています。次の仕様を使用すると、HA を無効にできます。
    [ha]
    enable = False
    (オプション) ncp.ini で NSXError を使用してエラー レポートを有効にします。この設定はデフォルトで無効になっています。
    [nsx_v3]
    enable_nsx_err_crd = True
    注: yaml ファイルで、 ncp.ini に生成された ConfigMap を読み取り専用ボリュームとしてマウントするように指定する必要があります。ダウンロードした yaml ファイルには、この指定がすでに行われています。この設定は変更できません。
  7. NCP ReplicationController を作成します。
        kubectl create -f ncp-rc.yml

結果

注: NCP は、Kubernetes リソースのライフ サイクル イベントを監視するために、Kubernetes API サーバにパーシステント HTTP 接続を確立します。API サーバの障害またはネットワーク障害が原因で NCP の TCP 接続が無効になった場合は、NCP を再起動して、API サーバへの接続を再度確立する必要があります。接続できないと、NCP で新しいイベントが認識されません。
NCP ReplicationController のローリング アップデート時、次の状況では、ローリング アップデート後に NCP ポッドが 2 つ実行されることがあります。
  • ローリング アップデート時に、コンテナ ホストを再起動した。
  • Kubernetes ノードに新しいイメージがないため、初回のローリング アップデートが失敗した。イメージをダウンロードして、ローリング アップデートを再実行し、正常に実行した。
2 つの NCP ポッドが実行されている場合は、次の操作を行います。
  • いずれかの NCP ポッドを削除します。どちらを削除しても構いません。次はその例です。
    kubectl delete pods <NCP pod name> -n nsx-system
  • NCP ReplicationController を削除します。次はその例です。
    kubectl delete -f ncp-rc.yml -n nsx-system