マネージャ モードでの
NSX
リソースの構成

NCP に特定のネットワーク リソースを構成するには、2 つの方法があります。このセクションでは、マネージャ モードでリソースを構成する方法について説明します。
NCP 構成ファイル
ncp.ini
で、リソース の UUID または名前を使用して
NSX
リソースを指定できます。

論理ルーターと論理スイッチ

  1. Kubernetes ノードの論理スイッチを作成します(例:
    LS1
    )。
  2. Tier-0 論理ルーターを作成します(例:
    T0LR1
    )。共有の Tier-1 トポロジを使用していない場合は、
    ncp.ini
    [nsx_v3]
    セクションで
    tier0_router
    オプションに論理ルーターの ID に設定します。共有の Tier-1 トポロジの構成方法については、以下を参照してください。この論理ルーターに NAT ルールを構成する場合は、HA モードをアクティブ/スタンバイに設定します。それ以外の場合は、アクティブ/アクティブに設定します。ルート再配分を有効にします。また、このルーターを外部ネットワークへのアクセス用に構成します。
  3. Tier-1 論理ルーターを作成します(例:
    T1LR1
    )。この論理ルーターを Tier-0 論理ルーターに接続します。
  4. T1LR1
    にルーターの通知を構成します。少なくとも、NSX が接続しているルートと NAT ルートを有効にする必要があります。
  5. T1LR1
    LS1
    に接続します。論理ルーターのポートの IP アドレスが Kubernetes ノードの IP アドレスと競合していないことを確認します。
  6. 各ノード仮想マシンで、コンテナ トラフィックの vNIC が自動作成の論理スイッチに接続していることを確認します。接続していれば、
    ネットワーク
    タブに論理スイッチと同じ名前 (
    LS1
    ) が表示されます。
NCP は vNIC の VIF ID を認識している必要があります。対応する論理スイッチのポートには次の 2 つのタグが必要です。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 アドレス プール
の順に移動して、1 つ以上の IP ブロックを作成します。IP アドレス ブロックを CIDR 形式で指定します。
ncp.ini
[nsx_v3]
セクションで、
container_ip_blocks
オプションに IP ブロックの UUID を設定します。
デフォルトでは、
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.ini
subnet_prefix
パラメータ値よりも大きいプレフィックスを使用しないでください。デフォルトは 24 です。
最初に割り当てられたサブネットが枯渇した場合、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 を設定します。
複数の Kubernetes クラスタが同じ外部 IP アドレス プールを使用します。各 NCP インスタンスは、管理する Kubernetes クラスタにこのプールのサブセットを使用します。デフォルトでは、ポッドのサブネットと同じサブネット プレフィックスが使用されます。異なるサイズのサブネットを使用するには、
ncp.ini
[nsx_v3]
セクションにある
external_subnet_prefix
オプションを更新します。
構成ファイルを変更して NCP を再起動することで、異なる IP アドレス プールに変更できます。

共有の Tier-1 トポロジ

共有の Tier-1 トポロジを有効にするには、次の構成を行います。
  • top_tier_router
    オプションに、Tier-0 論理ルーターまたは Tier-1 論理ルーターのいずれかの ID を設定します。Tier-1 論理ルーターの場合、外部接続用の Tier-0 論理ルーターに接続する必要があります。このオプションは、
    tier0_router
    オプションを置換します。
  • ポッド トラフィックに SNAT が有効になっている場合は、
    T1LR1
    LS1
    (Kubernetes ノードの論理スイッチ)から切断し、
    top_tier_router
    に設定された Tier-0 または Tier-1 ルーターを
    LS1
    に接続します。
  • single_tier_topology
    オプションを
    True
    に設定します。デフォルト値は
    False
    です。

(オプション)(Kubernetes のみ)ファイアウォール マーカー セクション

管理者が作成したファイアウォール ルールが、ネットワーク ポリシーに基づいて NCP で作成したファイアウォール セクションに干渉されないようにするには、
セキュリティ
分散ファイアウォール
全般
の順に移動して、2 つのファイアウォール セクションを作成します。
ncp.ini
[nsx_v3]
セクションで
bottom_firewall_section_marker
および
top_firewall_section_marker
オプションを設定して、マーカー ファイアウォール セクションを指定します。
最下位のファイアウォール セクションは、最上位のファイアウォール セクションの下に配置される必要があります。これらのファイアウォール セクションを作成することで、NCP が分離用に作成するすべてのファイアウォール セクションは、リストの最下位のファイアウォール セクションの上に作成され、NCP がポリシー用に作成するすべてのファイアウォール セクションは、最上位のファイアウォール セクションの下に作成されるようになります。マーカー セクションを作成しない場合、すべての分離ルールはリストの最下位に作成され、すべてのポリシー セクションは最上位に作成されます。同じ値を持つ複数のマーカー ファイアウォール セクションを 1 つのクラスタに設定することはできないため、エラーが発生します。