ルーティング可能なポッド ネットワークを使用する TanzuKubernetesCluster を作成するには、クラスタの CNI として antrea-nsx-routed を指定して、ルーティング可能な名前空間ネットワークを スーパーバイザー に構成します。

ルーティング可能なポッド ネットワークについて

antrea または calico CNI プラグインを使用して Tanzu Kubernetes クラスタをプロビジョニングすると、デフォルトのポッド ネットワーク 192.168.0.0/16 が作成されます。このサブネットは、クラスタ内でのみ一意のプライベート アドレス空間であり、ネットワーク上ではルーティングできません。

TKG v1alpha3 API は、antrea-nsx-routed CNI プラグインを使用してルーティング可能なポッド ネットワークをサポートします。このネットワーク インターフェイスは、カスタマイズされた Antrea プラグインであり、TKG クラスタでルーティング可能なポッド ネットワークをサポートするように構成されています。クラスタの仕様では、IP アドレス管理 (IPAM) が スーパーバイザー によって処理されるようにするために、ポッドの CIDR ブロック フィールドを明示的に null にする必要があります。次の例を参照してください。

ルーティング可能なポッド ネットワークを有効にすると、クラスタ外のクライアントから直接ポッドのアドレスを指定できます。また、外部のネットワーク サービスおよびサーバがソース ポッドを識別し、IP アドレスに基づいてポリシーを適用できるように、ポッドの IP アドレスが保存されます。次のようにトラフィック パターンがサポートされます。
  • 同じ vSphere 名前空間 にある TKG クラスタ ポッドと vSphere ポッド の間では、トラフィックが許可されます。
  • 異なる vSphere 名前空間 にある TKG クラスタ ポッドと vSphere ポッド の間では、トラフィックがドロップされます。
  • スーパーバイザー 制御プレーン ノードは、TKG クラスタ ポッドにアクセスできます。
  • TKG クラスタ ポッドは外部ネットワークにアクセスできます。
  • 外部ネットワークは、TKG クラスタ ポッドにアクセスできません。クラスタ ノードでは、分散ファイアウォール (DFW) の隔離ルールによってトラフィックがドロップされます。

ルーティング可能なポッド ネットワークの作成:スーパーバイザー 構成

ルーティング可能なポッド ネットワークを作成するには、 スーパーバイザー と TKG クラスタで構成を行う必要があります。
注: ルーティング可能なポッド ネットワークを使用するには、NSX に スーパーバイザー を構成する必要があります。VDS ネットワークでは、ルーティング可能なポッドを使用することはできません。
ルーティング可能なポッド ネットワークを スーパーバイザー で構成するには、次の手順を実行します。
  1. 新しい vSphere 名前空間 を作成します。

    TKG サービス クラスタをホストするための vSphere 名前空間 の作成を参照してください。

  2. [スーパーバイザー ネットワーク設定のオーバーライド] チェックボックスをオンにします。

    詳細については、vSphere 名前空間のワークロード ネットワーク設定のオーバーライドを参照してください。

  3. ルーティング可能なポッド ネットワークを次のように構成します。
    フィールド 説明
    [NAT モード] ルーティング可能なサブネットを使用しているためにネットワーク アドレス変換 (NAT) を無効にするには、このオプションを選択解除します。
    [名前空間ネットワーク CIDR]

    名前空間ネットワーク CIDR は、vSphere 名前空間の IP アドレス プールとして動作するサブネットです。名前空間サブネット プリフィックスには、その IP アドレス プールから分割された後続の CIDR ブロックのサイズが記述されます。

    このフィールドには、ルーティング可能な IP サブネットが IP アドレス/ビット(例:10.0.0.6/16)の形式でポピュレートされます。NCP によって、ネットワークに指定された IP ブロックから 1 つ以上の IP プールが作成されます。

    少なくともサブネット サイズ /23 を指定する必要があります。たとえば、サブネット プリフィックスが /28 のルーティング可能なサブネット /23 を指定すると、6 ノード クラスタに十分な数である 32 個のサブネットが取得されます。プリフィックスが /28 の /24 サブネットを指定した場合に取得されるサブネットは 2 個であり、これでは不十分です。

    [名前空間サブネット プリフィックス]

    名前空間サブネット プリフィックスには、名前空間ネットワークの IP アドレス プールから分割された後続の CIDR ブロックのサイズが記述されます。

    たとえば、/28 の形式でサブネット プリフィックスを指定します。

  4. [作成] をクリックして、ルーティング可能なポッド ネットワークを作成します。

ルーティング可能なポッド ネットワークの作成:TKG クラスタの構成

次のサンプル YAML は、ルーティング可能なポッド ネットワークを使用してクラスタを構成する方法を示します。

クラスタの仕様では、ルーティング可能なポッド ネットワークを有効にするために antrea-nsx-routed を CNI として宣言しています。antrea-nsx-routed が指定されている場合、NSX-T ネットワークが使用されていないとクラスタのプロビジョニングは失敗します。

CNI が antrea-nsx-routed と指定されている場合、 pods.cidrBlock フィールドを空にする必要があります。
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:
  name: tkc-routable-pods
  namespace: tkg-cluster-ns
spec:
  topology:
    controlPlane:
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkg-storage-policy
      tkr:  
        reference:
          name: v1.25.7---vmware.3-fips.1-tkg.1
    nodePools:
    - name: worker-nodepool-a1
      replicas: 3
      vmClass: guaranteed-large
      storageClass: tkg-storage-policy
      tkr:  
        reference:
          name: v1.25.7---vmware.3-fips.1-tkg.1
  settings:
    storage:
      defaultClass: tkg-storage-policy
    network:
      #antrea-nsx-routed is the required CNI
      cni:
        name: antrea-nsx-routed
      services:
        cidrBlocks: ["10.97.0.0/24"]
      #pods.cidrBlocks must be null (empty)
      pods:
        cidrBlocks:
      serviceDomain: cluster.local