動的メンバーシップ基準に Kubernetes メンバー タイプ(リソース)のグループを作成して、Antrea Kubernetes クラスタに出入りするトラフィックと一致させることができます。
さらに、これらの汎用グループを分散ファイアウォール ルールまたはゲートウェイ ファイアウォール ルールで使用して、NSX 環境の仮想マシンと Antrea Kubernetes クラスタ内のポッド間のトラフィックを保護できます。
この機能を使用するには、VMware Container Networking™ with Antrea™ 1.6.0 以降で使用可能な Antrea-NSX インターワーキング バージョンが必要です。1.6.0 リリース ノートを参照してください。
このドキュメントでは、「Kubernetes メンバー タイプ」という用語を動的メンバーシップ基準の構成に使用できる Kubernetes リソースという意味で使用しています。
現在、Kubernetes メンバー タイプの汎用グループは、動的メンバーシップ基準のみをサポートしています。Kubernetes メンバー タイプを汎用グループの定義に静的に追加することはできません。
メンバーシップ基準の Kubernetes メンバー タイプ
少なくとも 1 つの Antrea Kubernetes クラスタが NSX 環境に登録されている場合にのみ、[メンバーシップ基準] ページで、汎用グループに 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 メンバー タイプに基づいています。
|
Kubernetes メンバー タイプを含むメンバーシップ基準の概要
基準には 1 つ以上の条件を指定できます。条件には、同じ Kubernetes メンバー タイプを使用することも、異なる Kubernetes メンバー タイプを混在させることもできます。ただし、メンバーシップ基準にメンバー タイプが混在する複数の条件を追加する場合は、いくつかの制限があります。このドキュメントの後半にある「基準で Kubernetes メンバー タイプを使用する際の制限事項」を参照してください。
デフォルトでは、NSX はメンバーシップ基準の各条件の後で論理 AND 演算子を使用します。メンバーシップ基準の条件を結合するときに、他の論理演算子は使用できません。
- 両方の基準で同じ 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 |
サポート対象外 この表の後の注を参照してください。 |
サポート対象外 |
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 の範囲 |