Antrea グループを作成できるのは、NSXに 1 つ以上の Antrea コンテナ クラスタが登録されている場合のみです。

登録済みの Antreaコンテナ クラスタが検出されると、NSX Manager は、ユーザー インターフェイスの [グループの追加] ページに Antrea というグループ タイプを表示します。Antrea グループを追加するには、このグループ タイプを選択する必要があります。

Antrea グループには、静的 IP アドレス、メンバーシップ基準、またはその両方を含めることができます。IP アドレスには、ポッドまたはサービスの IP アドレスを指定します。

Antrea グループにメンバーシップ基準が含まれている場合、そのメンバーシップ基準で計算される有効なメンバーはポッドのみになります。

注:
  • 有効なメンバーは、Antrea グループが分散ファイアウォール ルールで使用されている場合にのみ、Antrea グループに対して計算されます。

    メンバーシップ基準を持つ Antrea グループを追加しても、これらのグループを分散ファイアウォール ルールで使用しない場合、これらの Antrea グループの有効なメンバーは NSX で計算または評価されません。つまり、これらの Antrea グループの [有効なメンバー] ページは空になります。

  • 現在、Antrea グループに静的 IP アドレスを追加すると、分散ファイアウォール ルールでグループが使用されているかどうかに関係なく、有効なメンバーはユーザー インターフェイスに表示されません。
Antrea グループにメンバーシップ基準を追加する場合、現在、次のコンテナ クラスタ オブジェクト(メンバー タイプ)がサポートされています。
  • ネームスペース
  • サービス
  • ポッド

メンバーシップ基準の概要

1 つのメンバーシップ基準または複数の基準を持つ Antrea グループを追加できます。メンバーシップ基準は 1 つまたは複数の条件から構成されます。メンバーシップ基準の条件は、次のプロパティから構成されます。
  • コンテナ クラスタ オブジェクト(メンバー タイプとも呼ばれます)
  • コンテナ クラスタ オブジェクトの名前か、コンテナ オブジェクトに関連付けられているタグ
  • タグ演算子と値(タグが使用されている場合のみ)
  • スコープ演算子と値(タグが使用されている場合のみ)
メンバーシップ基準の条件では、同じコンテナ クラスタ オブジェクトを使用することも、異なるコンテナ クラスタ オブジェクトを混在させることもできます。たとえば、メンバーシップ基準が 3 つの条件で構成されている場合、最初の 2 つの条件でポッド オブジェクトを使用し、3 番目の条件でネームスペース オブジェクトを使用できます。ただし、メンバーシップ基準に複数の条件を追加する場合は、いくつかの制限があります。このトピックの後半の「サポート対象とサポート対象外の機能」セクションを参照してください。

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

例:
メンバーシップ基準 説明

基準 1:

ポッド タグが App で、スコープがサーバ

メンバーシップ基準には、ポッド オブジェクトに基づく 1 つの条件しか含まれません。複数の条件は使用されません。この Antrea グループの有効なメンバーには、App タグを持つすべてのポッドが含まれます。

基準 2:

ポッド タグが App で、スコープがサーバ

ポッド タグが DB で、スコープがサーバ

ポッド タグが Web で、スコープがサーバ

メンバーシップ基準は 3 つの条件で構成されます。基準内のすべての条件は、ポッド オブジェクトをベースにしています。この Antrea グループの有効なメンバーには、App、DB、Web タグを持つすべてのポッドが含まれます。

基準 3:

ネームスペース名が本番環境と等しい

サービス名がキャッシュと等しい

メンバーシップ基準は、ネームスペースオブジェクトとサービス オブジェクトが混在する 2 つの条件で構成されます。この Antrea グループの有効なメンバーには、本番環境のネームスペース内の Cache というサービスに関連付けられているすべてのポッドが含まれます。

OR、AND 演算子を使用したメンバーシップ基準の参加

Antrea グループは、複数のメンバーシップ基準をサポートします。基準を結合する場合、OR 演算子と AND 演算子を使用できます。デフォルトでは、 NSX は OR 演算子を選択して基準を結合します。AND 演算子は、次の場合にのみ 2 つの基準の間で使用できます。
  • 両方の基準が同じコンテナ クラスタ オブジェクトを使用している。
  • 両方の基準が 1 つの条件を使用する。
例:
  • 基準 1、基準 2、基準 3 はすべてポッド オブジェクトをベースにしています。複数の条件は含まれていません。この場合、基準 1 と基準 2 は OR 演算子または AND 演算子で結合できます。同様に、基準 2 と基準 3 を OR 演算子または AND 演算子で結合できます。
  • 基準 1 はポッド オブジェクトに基づいていますが、基準 2 は、サービス オブジェクトを含む条件とネームスペースオブジェクトを含む 2 つの条件を使用します。この場合、基準 1 と 2 を結合するには OR 演算子を使用する必要があります。AND 演算子は使用できません。
  • 基準 1 と基準 2 はポッド オブジェクトに基づいていますが、基準 3 は、サービス オブジェクトを含む条件とネームスペースオブジェクトを含む 2 つの条件を使用します。この場合、基準 1 と基準 2 は AND 演算子または OR 演算子で結合できます。ただし、基準 2 と基準 3 は結合するには、OR 演算子を使用する必要があります。AND 演算子は使用できません。

サポート対象とサポート対象外の機能

次の表に、 Antrea グループにメンバーシップ基準を追加する際にサポートされるコンテナ クラスタ オブジェクト、タグ演算子、スコープ演算子を示します。
コンテナ クラスタ オブジェクト オブジェクト属性 タグ演算子 スコープ演算子 基準の例

ネームスペース

名前

次と等しい

該当なし

ネームスペース名が本番環境と等しい

ネームスペース

タグ

次と等しい

が次と等しくない

次と等しい

ネームスペースタグが DB、スコープがサーバ

サービス

名前

サポート対象外

サポート対象外

サービス名がキャッシュと等しい

ポッド

タグ

次と等しい

が次と等しくない

次と等しい

ポッド タグが App で、スコープがサーバ

  • 現在、次のタグ演算子は、ネームスペースオブジェクトとポッド オブジェクトで使用できません。
    • 次を含む
    • 次で始まる
    • 次で終わる
  • メンバーシップ基準で、サービス オブジェクトに基づく条件は、ネームスペース オブジェクトの名前属性に基づく条件と組み合わせる必要があります。つまり、サービス オブジェクトのみの基準は許可されません。
    例:
    サポート サポート対象外

    基準:

    サービス名が My-Service

    ネームスペース名がステージング

    基準:

    サービス名が My-Service

  • メンバーシップ基準で、サービス オブジェクトに基づく条件は、ポッド属性に基づく条件と併用できません。ただし、サービス オブジェクトとポッド オブジェクトを 2 つの個別のメンバーシップ基準に追加し、OR 演算子で結合することは可能です。
    例:
    サポート サポート対象外

    基準 1:サービス名が My-Service

    または

    基準 2:ポッド タグが DB、スコープがサーバ

    基準:

    サービス名が My-Service

    ポッド タグが DB で、スコープがサーバ

  • Antrea グループに静的なメンバーを追加する場合は、IP アドレスのみがサポートされます。コンテナ クラスタ オブジェクトを静的メンバーとして Antrea グループに追加することはできません。
  • Antrea グループを追加するときに、グループ タイプを [Antrea] から[汎用] または [Antrea] から [IP アドレスのみ] に変更すると、NSX は情報メッセージを表示します。変更を確定すると、グループ内のすべてのメンバーシップ基準が失われます。グループの IP アドレスのみが保持されます。

    Antrea グループが NSX で認識(保存)されると、グループ タイプは変更できません。[汎用] および [IP アドレスのみ] グループ タイプはグレーアウトされます。

バージョン 1.20 以前の Kubernetes の回避策

Antrea グループ基準「ネームスペース名が Value と等しい」は、Kubernetes バージョン 1.21 以降で機能します。

Kubernetes 1.21 以降では、すべてのネームスペースに特別なラベルが自動的に追加され、このラベルが基準「ネームスペース名が Value に等しい」で内部的に使用されます。Kubernetes バージョン 1.20 以前の場合は、回避策を行う必要があります。イベントを作成するネームスペースに Antrea Controller Webhook を登録する必要があります。Antrea Controller Webhook が呼び出されると、Antrea Controller は新しいネームスペースに特別なラベルを追加します。これにより、基準「ネームスペース名が Value と等しい」でこのラベルが使用されます。Antrea Controller Webhook の登録の詳細については、Kubernetes API サーバへの YAML ファイルの送信の手順 3 を参照してください。

注: Antrea Controller Webhook は、Webhook の登録後に作成した新しいネームスペースに対してのみ有効です。つまり、 kube-systemdefault などの既存のネームスペースは、特別なラベルを取得しないため、これらのネームスペースで基準「ネームスペース名が Value と等しい」は機能しません。