動的メンバーシップ基準に Kubernetes メンバー タイプ(リソース)のグループを作成して、Antrea Kubernetes クラスタに出入りするトラフィックと一致させることができます。

さらに、これらの汎用グループを分散ファイアウォール ルールまたはゲートウェイ ファイアウォール ルールで使用して、NSX 環境の仮想マシンと Antrea Kubernetes クラスタ内のポッド間のトラフィックを保護できます。

この機能を使用するには、VMware Container Networking™ with Antrea™ 1.6.0 以降で使用可能な Antrea-NSX インターワーキング バージョンが必要です。1.6.0 リリース ノートを参照してください。

このドキュメントでは、「Kubernetes メンバー タイプ」という用語を動的メンバーシップ基準の構成に使用できる Kubernetes リソースという意味で使用しています。

現在、Kubernetes メンバー タイプの汎用グループは、動的メンバーシップ基準のみをサポートしています。Kubernetes メンバー タイプを汎用グループの定義に静的に追加することはできません。

注: NSX は、Kubernetes メンバー タイプを使用して定義された動的メンバーシップ基準を含む汎用グループの有効なメンバーを評価するために、 Antrea CNI を含む Kubernetes クラスタによって報告されるリソース インベントリを考慮します。NCP CNI を含む Kubernetes クラスタによって報告されたリソース インベントリは、有効なグループ メンバーを評価する際に無視されます。

メンバーシップ基準の Kubernetes メンバー タイプ

少なくとも 1 つの Antrea Kubernetes クラスタが NSX 環境に登録されている場合にのみ、[メンバーシップ基準] ページで、汎用グループに Kubernetes メンバー タイプを使用できます。

注: マルチテナント NSX 環境では、Kubernetes クラスタ リソースがプロジェクト インベントリに公開されません。したがって、プロジェクト内で、動的メンバーシップ基準に Kubernetes メンバー タイプを含む汎用グループを作成することはできません。

次の表に、NSX 4.1 以降の [デフォルト] ビューで、汎用グループに動的メンバーシップ基準を追加する際に使用できる Kubernetes メンバー タイプを示します。各 Kubernetes メンバー タイプは、クラスタの範囲またネームスペースの範囲のいずれかに属しています。

メンバーのタイプ スコープ

Kubernetes クラスタ

クラスタ

Kubernetes ネームスペース

ネームスペース

Kubernetes ノード

クラスタ

Kubernetes サービス

ネームスペース

Kubernetes Ingress

ネームスペース

Kubernetes ゲートウェイ

ネームスペース

Antrea Egress

クラスタ

Antrea IP プール

クラスタ

Kubernetes メンバー タイプを含む条件に使用される命名規則

次の表では、Kubernetes メンバー タイプに基づいて動的メンバーシップ基準に追加できるさまざまな条件を表すために、このドキュメントで使用している命名規則について説明します。

条件の命名規則 意味

Kubernetes クラスタの条件

動的メンバーシップ基準の条件は、Kubernetes クラスタ メンバー タイプに基づいています。

Kubernetes ネームスペースの条件

動的メンバーシップ基準の条件は、Kubernetes ネームスペース メンバー タイプに基づいています。

リソースの条件

動的メンバーシップ基準の条件は、次のいずれかの Kubernetes メンバー タイプに基づいています。
  • Kubernetes サービス
  • Kubernetes Ingress
  • Kubernetes ゲートウェイ
  • Antrea Egress
  • Antrea IP プール
  • Kubernetes ノード

クラスタの範囲内のリソース条件

動的メンバーシップ基準の条件は、次のいずれかの Kubernetes メンバー タイプに基づいています。
  • Antrea Egress
  • Antrea IP プール
  • Kubernetes ノード

ネームスペースの範囲内のリソース条件

動的メンバーシップ基準の条件は、次のいずれかの Kubernetes メンバー タイプに基づいています。
  • Kubernetes サービス
  • Kubernetes Ingress
  • Kubernetes ゲートウェイ

Kubernetes メンバー タイプを含むメンバーシップ基準の概要

基準には 1 つ以上の条件を指定できます。条件には、同じ Kubernetes メンバー タイプを使用することも、異なる Kubernetes メンバー タイプを混在させることもできます。ただし、メンバーシップ基準にメンバー タイプが混在する複数の条件を追加する場合は、いくつかの制限があります。このドキュメントの後半にある「基準で Kubernetes メンバー タイプを使用する際の制限事項」を参照してください。

デフォルトでは、NSX はメンバーシップ基準の各条件の後で論理 AND 演算子を使用します。メンバーシップ基準の条件を結合するときに、他の論理演算子は使用できません。

基準を結合する場合、OR 演算子と AND 演算子を使用できます。デフォルトでは、 NSX は OR 演算子を選択して 2 つの基準を結合します。AND 演算子は、次の場合にのみ 2 つの基準の間で使用できます。
  • 両方の基準で同じ Kubernetes メンバー タイプを使用する。
  • 両方の基準が 1 つの条件を使用する。
複数の条件を追加する場合、次の制限があります。
  • 1 つのメンバーシップ基準で、同じ Kubernetes メンバー タイプの条件は最大で 5 つまでサポートされています。たとえば、基準には、最大 5 つの Kubernetes サービス条件を追加できます。
  • 1 つのメンバーシップ基準で、Kubernetes メンバー タイプが混在する条件は最大で 15 個までサポートされています。たとえば、1 つの基準に、Kubernetes ネームスペース条件と Kubernetes Ingress 条件を合わせて最大 15 個までの条件を追加できます。
  • 1 つの汎用グループで、メンバー タイプが混在する条件は最大で 35 個までサポートされています。

1 つのグループには、最大で 5 つのメンバーシップ基準を設定できます。ただし、汎用グループに追加できる基準の合計数は、各基準の条件数によって決まります。次の例を参照してください。

Example 1
3 つのメンバーシップ基準と合計 35 個の条件を含む汎用グループ:
  • 基準 1 には、メンバー タイプが混在する条件が 15 個あります。
  • 基準 2 には、メンバー タイプが混在する条件が 15 個あります。
  • 基準 3 には、同じメンバー タイプの条件が 5 個あります。
Example 2
4 つのメンバーシップ基準と合計 35 個の条件を含む汎用グループ:
  • 基準 1 には、メンバー タイプが混在する条件が 15 個あります。
  • 基準 2 には、メンバー タイプが混在する条件が 14 個あります。
  • 基準 3 には、同じメンバー タイプの条件が 4 個あります。
  • 基準 4 には、同じメンバー タイプの条件が 2 個あります。
Example 3
5 つのメンバーシップ基準と合計 22 個の条件を含む汎用グループ:
  • 基準 1 には、メンバー タイプが混在する条件が 10 個あります。
  • 基準 2 には、同じメンバー タイプの条件が 3 個あります。
  • 基準 3 には、同じメンバー タイプの条件が 4 個あります。
  • 基準 4 には、同じメンバー タイプの条件が 3 個あります。
  • 基準 5 には、メンバー タイプが混在する条件が 2 個あります。
このグループでは、基準が上限の 5 個に達しているため、別のメンバーシップ基準を追加することはできません。ただし、前述の上限を超えなければ、必要に応じて 5 つの基準のいずれかに条件を追加できます。
  • 1 つの基準で同じメンバー タイプの条件は最大で 5 個まで。
  • 1 つの基準でメンバー タイプが混在する条件は最大で 15 個まで。
  • 汎用グループ内の条件の合計は 35 個まで。

基準で Kubernetes メンバー タイプを使用する際の制限事項

次の表に、単一メンバーシップ基準で Kubernetes メンバー タイプを使用する場合に適用される制限または検証の概要を示します。検証の例については、このドキュメントの後半にある「Kubernetes メンバー タイプを使用した動的グループ化の検証」を参照してください。

メンバーのタイプ 基準でメンバー タイプを使用する際の制限事項 サポートされる属性 タグ演算子 スコープ演算子

Kubernetes クラスタ

基準内で単独で使用することはできません。

1 つの基準で許可されるクラスタ条件は 1 つのみです。

少なくとも 1 つの Kubernetes リソース条件と混在させる必要があります。

必要に応じて、Kubernetes ネームスペース条件と Kubernetes リソース条件を混在できます。

名前

サポート対象外

サポート対象外

Kubernetes ネームスペース

基準内で単独で使用することはできません。

クラスタの範囲内のリソース条件との混在はできません。

ネームスペースの範囲内のリソース条件と混在させる必要があります。

必要に応じて、Kubernetes クラスタ条件と混在できます。

名前

タグ

次と等しい - 1 つのタグを選択可能

次と等しい

Antrea Egress

基準内で単独で使用できます。

必要に応じて、Kubernetes クラスタ条件と混在できます。

名前

タグ

次と等しい - 1 つのタグを選択可能

次と等しい

Antrea IP プール

基準内で単独で使用できます。

必要に応じて、Kubernetes クラスタ条件と混在できます。

名前

タグ

次と等しい - 1 つのタグを選択可能

次と等しい

Kubernetes Ingress

基準内で単独で使用できます。

必要に応じて、Kubernetes ネームスペース条件のみ、または Kubernetes クラスタ条件のみ、またはその両方を混在させることができます。

名前

タグ

次と等しい - 1 つのタグを選択可能

次と等しい

Kubernetes ゲートウェイ

基準内で単独で使用できます。

必要に応じて、Kubernetes ネームスペース条件のみ、または Kubernetes クラスタ条件のみ、またはその両方を混在させることができます。

名前

タグ

次と等しい - 1 つのタグを選択可能

次と等しい

Kubernetes サービス

基準内で単独で使用できます。

必要に応じて、Kubernetes ネームスペース条件のみ、または Kubernetes クラスタ条件のみ、またはその両方を混在させることができます。

名前

タグ

次と等しい - 1 つのタグを選択可能

次と等しい

Kubernetes ノード

基準内で単独で使用できます。

1 つのノード条件のみが許可されます。

必要に応じて、Kubernetes クラスタ条件と混在できます。

Kubernetes ネームスペース条件または Kubernetes リソース条件との混在はできません。

IP アドレス

ポッド CIDR

サポート対象外

この表の後の注を参照してください。

サポート対象外

注: API を使用して Kubernetes ノード メンバー タイプの汎用グループを作成する場合、一致演算子のみが許可されます。この演算子には * 値のみを使用できます。* ワイルドカード文字は、K8s クラスタ内のすべてのノードと一致します(Kubernetes ノード条件が Kubernetes クラスタ条件と混在している場合)。または、すべてのクラスタのノードと一致します(Kubernetes ノード条件が単独で使用されている場合)。

Kubernetes メンバー タイプを使用した動的グループ化の検証

検証 1
メンバーシップ基準には、最大で 1 つの Kubernetes クラスタ条件を設定できます。単一の Kubernetes クラスタを名前で一致させるには、「次に等しい」演算子を使用してクラスタ名を入力します。
注: Kubernetes クラスタ名は一意にする必要があります。
単一の Kubernetes クラスタ条件で複数のクラスタを一致させるには、次のいずれかの演算子を使用できます。
  • 受信
  • 次で始まる
  • 次で終わる

例:

単一の K8s クラスタに一致 複数の K8s クラスタに一致
基準:

Kubernetes クラスタ名が ClusterA に等しい

基準:

ClusterA、ClusterB、ClusterC の Kubernetes クラスタ名

カンマ区切りの値を 5 つまで使用できます。値はスペースで区切る必要があります。

検証 2

Kubernetes クラスタ条件を含むメンバーシップ基準は、いずれかの Kubernetes リソース条件と混在させることができます。Kubernetes ネームスペース条件も同じ基準に追加する場合は、リソース条件をネームスペースの範囲内のリソース条件のみに制限する必要があります。

例:
  • 1 つの Kubernetes クラスタ条件と 3 つの Kubernetes Ingress 条件を含むメンバーシップ基準が有効です。
  • 1 つの Kubernetes クラスタ条件と 2 つの Antrea Egress 条件を含むメンバーシップ基準が有効です。
  • 1 つの Kubernetes クラスタ条件と 3 つの Antrea IP プール条件を含むメンバーシップ基準が有効です。
  • Kubernetes クラスタ条件、1 つの Kubernetes ネームスペース条件、および 3 つの Kubernetes ゲートウェイ条件を含むメンバーシップ基準が有効です。
検証 3
メンバーシップ基準には、少なくとも 1 つの Kubernetes リソース条件を含める必要があります。メンバーシップ基準に次の条件が含まれている場合は無効です。
  • Kubernetes クラスタ条件のみ
  • Kubernetes ネームスペース条件のみ
  • Kubernetes クラスタ条件と Kubernetes ネームスペース条件のみ
例:
  • 1 つの Kubernetes クラスタ条件、1 つの Kubernetes ネームスペース条件、および 1 つの Kubernetes Ingress 条件を含むメンバーシップ基準が有効です。
  • 1 つの Kubernetes クラスタ条件、2 つの Kubernetes ネームスペース条件、および 3 つの Kubernetes Ingress 条件を含むメンバーシップ基準が有効です。
検証 4

メンバーシップ基準に設定できる Kubernetes ノード条件は 1 つのみです。必要に応じて、Kubernetes ノード条件と Kubernetes クラスタ条件のみを混在できます。

Kubernetes ノード条件を Kubernetes ネームスペース条件または Kubernetes リソース条件と混在させることはできません。

Kubernetes ノード条件のみを含むメンバーシップ基準は単独で使用できます。ただし、Kubernetes ノード条件のみのグループは、NSX に登録されているすべての Antrea Kubernetes クラスタのノードと一致します。

現在 Kubernetes ノード条件では、タグ演算子とスコープ演算子はサポートされていません。

Kubernetes ノード条件は、次の 2 つのプロパティをサポートします。

プロパティ 説明

IP アドレス

指定された Antrea Kubernetes クラスタのすべてのノードの内部 IP アドレスを一致させます。

ポッド CIDR

指定された Antrea Kubernetes クラスタのすべてのノードのポッド CIDR と一致させます。

検証 5
メンバーシップ基準に Kubernetes クラスタ条件と Kubernetes ネームスペース条件が含まれている場合は、少なくとも 1 つのネームスペースの範囲内の Kubernetes リソース条件を含める必要があります。次のクラスタの範囲内の Kubernetes リソース条件を同じ基準に混在させることはできません。
  • Antrea 出力方向
  • Antrea IP プール
  • Kubernetes ノード
例:
  • 1 つの Kubernetes クラスタ条件、2 つの Kubernetes ネームスペース条件、および Kubernetes Gateway 条件を含むメンバーシップ基準が有効です。
  • 1 つの Kubernetes クラスタ条件、4 つの Kubernetes ネームスペース条件、および 3 つの Kubernetes サービス条件を含むメンバーシップ基準が有効です。
  • 1 つの Kubernetes クラスタ条件、1 つの Kubernetes ネームスペース条件、および 1 つの Antrea Egress 条件を含むメンバーシップ基準は無効です。これは、Antrea Egress がクラスタの範囲内のリソースであるためです。
検証 6
メンバーシップ基準には、少なくとも 1 つの Kubernetes リソース条件を含める必要があります。リソース条件は、基準内で単独で使用することができます。ただし、基準に複数のリソース条件を追加する場合は、すべてのリソース条件が同じメンバー タイプである必要があります。
注: Kubernetes クラスタ条件と Kubernetes ネームスペース条件は、基準の範囲を定義するために使用されます。これらは Kubernetes リソース条件でないため、この検証ルールによって制限されません。
例:
  • 5 つの Kubernetes サービス条件を含むメンバーシップ基準が有効です。
  • 1 つの Kubernetes クラスタ条件、3 つの Kubernetes ネームスペース条件、および 4 つの Kubernetes サービス条件を含むメンバーシップ基準が有効です。
  • 1 つの Kubernetes クラスタ条件、3 つの Kubernetes ネームスペース条件、4 つの Kubernetes サービス条件、および 3 つの Kubernetes Ingress 条件を含むメンバーシップ基準が無効です。これは、同じ基準に 2 つの異なるメンバー タイプ(Kubernetes Service と Kubernetes Ingress)のリソース条件が混在するためです。

    ただし、次に示すように、単一のメンバー タイプに基づくリソース条件を使用して個別の基準を作成し、両方の基準を OR 演算子で結合することはできます。

    基準 1:

    1 つの Kubernetes クラスタ条件 + 3 つの Kubernetes ネームスペース条件 + 4 つの Kubernetes サービス条件

    または

    基準 2:

    1 つの Kubernetes クラスタ条件 + 3 つの Kubernetes ネームスペース条件 + 3 つの Kubernetes Ingress 条件

検証 7

単一のメンバーシップ基準で、NSX メンバー タイプに基づく条件を Kubernetes メンバー タイプに基づく条件と混在させることはできません。ただし、NSX メンバー タイプのみに基づく 1 つの基準を含むグループと、Kubernetes メンバー タイプのみに基づく他の基準を含むグループを作成し、両方の基準を OR 演算子で結合することはできます。

例:

有効 無効

基準 1:

仮想マシン条件

または

基準 2:

Kubernetes クラスタ条件 + Kubernetes ゲートウェイ条件

基準:

NSX セグメント条件 + セグメント ポート条件

および

Kubernetes クラスタ条件 + Kubernetes ゲートウェイ条件

Kubernetes メンバー タイプを含む条件で有効なメンバー

NSX から見て、Kubernetes メンバー タイプを持つグループの有効なメンバーは、個別の IP アドレス、IP 範囲、または IP アドレスとポートのリストのいずれかになります。

次の表に、いくつかの例を示します。

グループ定義の例 使用事例 説明 有効なメンバー

Kubernetes クラスタの条件

および

Kubernetes ノードの条件(IP アドレスに基づく)

Antrea Kubernetes クラスタから NSX へのトラフィック

指定したクラスタ内のすべてのノード IP アドレスと一致させます

IP アドレス

Kubernetes クラスタの条件

および

Kubernetes ノードの条件(ポッドの CIDR)

Antrea Kubernetes クラスタから NSX へのトラフィック

指定されたクラスタのすべてのノードのポッド CIDR と一致させます

ポッド CIDR

Kubernetes クラスタの条件

および

Antrea Egress の条件(名前に基づく)

Antrea Kubernetes クラスタから NSX へのトラフィック

指定されたクラスタ内の名前で Egress と一致させます

Egress IP アドレス

Kubernetes クラスタの条件

および

Antrea Egress の条件(タグに基づく)

および

追加の Antrea Egress の条件(タグに基づく)

Antrea Kubernetes クラスタから NSX へのトラフィック

指定されたクラスタ内のタグで Egress と一致させます。

Egress IP アドレス

Kubernetes クラスタの条件

および

Antrea IP プールの条件(名前に基づく)

Antrea Kubernetes クラスタから NSX へのトラフィック

NSX から Antrea Kubernetes クラスタへのトラフィック

指定されたクラスタ内の名前で IP プールと一致させます

IP 範囲

Kubernetes クラスタの条件

および

Antrea IP プールの条件(タグに基づく)

および

追加の Antrea IP プールの条件(タグに基づく)

Antrea Kubernetes クラスタから NSX へのトラフィック

NSX から Antrea Kubernetes クラスタへのトラフィック

指定されたクラスタ内のタグで IP プールと一致させます

IP 範囲

Kubernetes クラスタの条件

および

Kubernetes ネームスペースの条件

および

Kubernetes Ingress の条件(名前に基づく)

NSX から Antrea Kubernetes クラスタへのトラフィック

指定されたクラスタとネームスペースの名前で Ingress と一致させます

Ingress IP アドレス

Kubernetes クラスタの条件

および

Kubernetes ネームスペースの条件

および

Kubernetes ゲートウェイの条件(名前に基づく)

NSX から Antrea Kubernetes クラスタへのトラフィック

指定されたクラスタとネームスペースの名前でゲートウェイと一致させます

ゲートウェイ IP アドレス

Kubernetes クラスタの条件

および

Kubernetes ネームスペースの条件

および

Kubernetes Ingress の条件(タグに基づく)

および

追加の Kubernetes Ingress の条件(タグに基づく)

NSX から Antrea Kubernetes クラスタへのトラフィック

指定されたクラスタとネームスペースのタグで Ingress と一致させます

Ingress IP アドレス

Kubernetes クラスタの条件

および

Kubernetes ネームスペースの条件

および

Kubernetes ゲートウェイの条件(タグに基づく)

および

追加の Kubernetes ゲートウェイの条件(タグに基づく)

NSX から Antrea Kubernetes クラスタへのトラフィック

指定されたクラスタとネームスペースのタグでゲートウェイと一致させます

ゲートウェイ IP アドレス

Kubernetes クラスタの条件

および

Kubernetes ネームスペースの条件

および

Kubernetes サービスの条件(タグと type=LoadBalancer に基づく)

および

追加の Kubernetes サービスの条件(タグと type=LoadBalancer に基づく)

NSX から Antrea Kubernetes クラスタへのトラフィック

指定されたクラスタとネームスペースのタグでサービス (LoadBalancer) と一致させます

LoadBalancer Ingress IP アドレス

Kubernetes クラスタの条件

および

Kubernetes ネームスペースの条件

および

Kubernetes サービスの条件(名前、type=ClusterIP、NodePortLocal 機能が有効かどうかに基づく)

NSX から Antrea Kubernetes クラスタへのトラフィック 指定されたクラスタおよびネームスペースの名前でサービス(NodePortLocal が有効な ClusterIP)と一致させます。

ノードの IP アドレス、NodePortLocal の範囲