NCP に特定のネットワーク リソースを構成するには、2 つの方法があります。このセクションでは、ポリシー モードでリソースを構成する方法について説明します。

NCP 構成ファイル ncp.ini で、リソース ID を使用して NSX リソースを指定する必要があります。通常、リソースの名前と ID は同じです。確認のため、NSX Manager Web ユーザー インターフェイスで 3 つのドット アイコンをクリックしてリソース オプションを表示し、[クリップボードにパスをコピー] を選択します。メモ帳などのアプリケーションにパスを貼り付けます。パスの最後の部分が リソース ID です。

ゲートウェイとセグメント

  1. Kubernetes ノードのセグメントを作成します(例:Segment1)。
  2. Tier-0 ゲートウェイを作成します(例:T0GW1)。共有の Tier-1 トポロジを使用していない場合は、ncp.ini[nsx_v3] セクションで top_tier_router オプションにゲートウェイの ID に設定します。共有の Tier-1 トポロジの構成方法については、以下を参照してください。このゲートウェイに NAT ルールを構成する場合は、HA モードをアクティブ/スタンバイに設定します。それ以外の場合は、アクティブ/アクティブに設定します。ルート再配分を有効にします。また、このゲートウェイを外部ネットワークへのアクセス用に構成します。
  3. Tier-1 ゲートウェイを作成します(例:T1GW1)。このゲートウェイを Tier-0 ゲートウェイに接続します。
  4. T1GW1 にルーターの通知を構成します。少なくとも、NSX が接続しているルートと NAT ルートを有効にする必要があります。
  5. T1GW1Segment1 に接続します。ゲートウェイ ポートの IP アドレスが Kubernetes ノードの IP アドレスと競合していないことを確認します。
  6. 各ノード仮想マシンで、コンテナ トラフィックの vNIC が自動作成の論理スイッチに接続していることを確認します。接続していれば、[ネットワーク] タブにセグメントと同じ名前 (Segment1) が表示されます。
NCP は vNIC の VIF ID を認識している必要があります。[ネットワーク] > [セグメント] の順に移動すると、自動的に作成された Segment1 のポートを確認できます。tag プロパティを除き、これらのポートは編集できません。これらのポートには次のタグが必要です。1 つのタグには、ノードの名前を指定します。もう 1 つのタグには、クラスタの名前を指定します。範囲には、以下に示す適切な値を指定します。
タグ スコープ
ノード名 ncp/node_name
クラスタ名 ncp/cluster
これらのタグは、対応する論理スイッチ ポートに自動的に伝達されます。ノード名が変更された場合には、タグを更新する必要があります。ノード名を取得するには、次のコマンドを実行します。
kubectl get nodes

クラスタにノードを追加するなど、NCP の実行中に Kubernetes クラスタを拡張する場合は、kubeadm join を実行する前に、対応するスイッチ ポートにタグを追加する必要があります。kubeadm join の実行前にタグを追加しないと、新しいノードに接続できなくなります。その場合、タグを追加して NCP を再起動する必要があります。

ノード仮想マシンのスイッチ ポートを識別するには、次の API 呼び出しを実行します。
/api/v1/fabric/virtual-machines
応答でノード仮想マシンを検索し、external_id 属性の値を取得します。または、次の API 呼び出しを行います。
/api/v1/search -G --data-urlencode "query=(resource_type:VirtualMachine AND display_name:<node_vm_name>)"
取得した外部 ID を次の API で使用し、仮想マシンの VIF を取得します。仮想マシンを起動するまで、VIF は読み込まれません。
/api/v1/search -G --data-urlencode \
"query=(resource_type:VirtualNetworkInterface AND external_id:<node_vm_ext_id> AND \
_exists_:lport_attachment_id)"

lport_attachment_id 属性は、ノード仮想マシンの VIF ID です。その後、この VIF の論理ポートを検索し、必要なタグを追加します。

Kubernetes ポッドの IP アドレス ブロック

[ネットワーク] > [IP アドレス管理] > [IP アドレス プール] > [IP アドレス ブロック] の順に移動して、1 つ以上の IP ブロックを作成します。IP アドレス ブロックを CIDR 形式で指定します。ncp.ini[nsx_v3] セクションで、container_ip_blocks オプションに IP ブロックの UUID を設定します。NCP が IP ブロックを自動的に作成するように設定する場合は、container_ip_blocks オプションにカンマ区切りのアドレス リストを CIDR 形式で設定します。

デフォルトでは、container_ip_blocks で指定された IP ブロックがプロジェクト間で共有されます。ncp.ini[nsx_v3] セクションで no_snat_ip_blocks オプションを設定すると、SNAT 以外のネームスペース(Kubernetes 用)またはクラスタ(TAS 用)の IP ブロックを作成できます。

NCP の実行中に SNAT 以外の IP アドレス ブロックを作成した場合には、NCP を再起動する必要があります。再起動しない場合、IP アドレス ブロックが枯渇するまで、NCP は共有の IP アドレス ブロックを使用し続けます。

IP ブロックを作成するときに、NCP 構成ファイル ncp.inisubnet_prefix パラメータ値よりも大きいプレフィックスを使用しないでください。デフォルトは 24 です。

NCP が IP ブロックから割り当てられた IP アドレスを開始している場合は、そのブロックを変更しないでください。別のブロックを使用する場合は、NCP がそのブロックからアドレスを割り当てていないことを確認してください。

外部 IP プール

SNAT ルールを使用してポッドの IP を変換する際、または SNAT/DNAT ルールを使用して Ingress Controller と LoadBalancer タイプのサービスを公開する際に、OpenStack のフローティング IP と同様に、外部 IP プールが IP アドレスの割り当てに使用されます。これらの IP アドレスは、外部 IP アドレスともいいます。

[ネットワーク] > [IP アドレス管理] > [IP アドレス プール] の順に移動して、IP プールを作成します。ncp.ini[nsx_v3] セクションで、external_ip_pools オプションに IP プールの UUID を設定します。NCP が IP プールを自動的に作成するように設定する場合は、external_ip_pools オプションにカンマ区切りのアドレス リストを CIDR 形式で設定するか、IP 範囲を設定します。

複数の Kubernetes クラスタが同じ外部 IP アドレス プールを使用します。各 NCP インスタンスは、管理する Kubernetes クラスタにこのプールのサブセットを使用します。デフォルトでは、ポッドのサブネットと同じサブネット プレフィックスが使用されます。異なるサイズのサブネットを使用するには、ncp.ini[nsx_v3] セクションにある external_subnet_prefix オプションを更新します。

構成ファイルを変更して NCP を再起動することで、異なる IP アドレス プールに変更できます。

NCP が IP プールから割り当てられた IP アドレスを開始している場合は、そのプールを変更しないでください。別のプールを使用する場合は、NCP がそのプールからアドレスを割り当てていないことを確認してください。

共有の Tier-1 トポロジ

共有の Tier-1 トポロジを有効にするには、次の構成を行います。
  • top_tier_router オプションを、Tier-1 ゲートウェイの ID に設定します。外部接続用に Tier-1 ゲートウェイを Tier-0 ゲートウェイに接続します。
  • ポッド トラフィックに SNAT が有効になっている場合は、Kubernetes ノードのセグメントのアップリンクを、top_tier_router に設定されている Tier-0 または Tier-1 ゲートウェイに変更します。
  • single_tier_topology オプションを True に設定します。デフォルト値は False です。
  • NCP が最上位層のルーターを Tier-1 ゲートウェイとして自動的に構成するように設定するには、top_tier_router オプションの設定を解除し、tier0_gateway オプションを設定します。NCP は、Tier-1 ゲートウェイを作成し、tier0_gateway オプションに指定されている Tier-0 ゲートウェイとのアップリンクを確立します。

注:top_tier_router オプションを設定して一部のネームスペースを作成した後に、top_tier_router を別の値に更新して NCP を再起動することはできません。この処理はサポートされていません。