只有在 NSX-T Data Center 中已登錄一或多個 Antrea 容器叢集時,才可以建立 Antrea 群組。

如果偵測到已登錄的 Antrea 容器叢集,則 NSX Manager 會在 UI 的新增群組頁面上另外顯示一個名為 Antrea 的群組類型。您必須選取此群組類型,才能新增 Antrea 群組。

Antrea 群組可以包含靜態 IP 位址和/或成員資格準則。IP 位址可以是網繭或服務 IP 位址。

Antrea 群組包含成員資格準則時,該成員資格準則所計算的有效成員只能是網繭。

備註:
  • 當分散式防火牆規則中使用 Antrea 群組時,系統才會計算 Antrea 群組的有效成員。

    如果新增了具有成員資格準則的 Antrea 群組,但未在任何分散式防火牆規則中使用這些群組,則系統不會在 NSX-T 中計算或評估這些 Antrea 群組的有效成員。換句話說,這些 Antrea 群組的有效成員頁面會空白。

  • Antrea 群組中新增靜態 IP 位址時,無論是否在分散式防火牆規則中使用這些群組,UI 中目前都不會顯示有效成員。
若要在 Antrea 群組中新增成員資格準則,目前支援以下容器叢集物件 (成員類型):
  • 命名空間
  • 服務
  • 網繭

成員資格準則概觀

您所新增的 Antrea 群組可以有單一成員資格準則,也可以有多個成員資格準則。成員資格準則包含一或多個條件。成員資格準則中的條件包含以下屬性:
  • 容器叢集物件 (也稱為成員類型)
  • 容器叢集物件的名稱或附加到容器物件的標籤
  • 標籤運算子和值 (僅在使用了標籤時)
  • 範圍運算子和值 (僅在使用了標籤時)
成員資格準則中的條件可以使用同一個容器叢集物件,也可以混合使用不同的容器叢集物件。例如,如果成員資格準則包含三個條件,前兩個條件可以使用網繭物件,第三個條件可以使用命名空間物件。但是,在成員資格準則中新增多個條件時會有一些限制。請參閱本主題後面的〈支援和不支援的功能〉一節。

依預設,NSX-T 會在成員資格準則中的每個條件後面使用邏輯 AND 運算子。不支援使用其他邏輯運算子來聯結成員資格準則中的條件。

範例:
成員資格準則 說明

準則 1:

網繭標籤等於 App,範圍等於伺服器

成員資格準則僅包含一個以網繭物件為基礎的條件。未使用多個條件。此 Antrea 群組的有效成員包括有 App 標籤的所有網繭。

準則 2:

網繭標籤等於 App,範圍等於伺服器

網繭標籤等於 DB,範圍等於伺服器

網繭標籤等於 Web,範圍等於伺服器

成員資格準則包含三個條件。成員資格準則中的所有條件均以網繭物件為基礎。此 Antrea 群組的有效成員包括有 App、DB 和 Web 標籤的所有網繭。

準則 3:

命名空間名稱等於生產

服務名稱等於快取

成員資格準則包含兩個混合使用命名空間物件和服務物件的條件。此 Antrea 群組的有效成員包括與生產命名空間中名為「快取」的服務相關聯的所有網繭。

使用 OR、AND 運算子來聯結成員資格準則

Antrea 群組可支援多個成員資格準則。若要聯結準則,可以使用 OR 和 AND 運算子。 NSX-T 依預設會選擇使用 OR 運算子來聯結多個準則。在符合以下情況時,才支援在兩個準則之間使用 AND 運算子:
  • 兩個準則使用相同的容器叢集物件。
  • 兩個準則均使用單一條件。
範例:
  • 準則 1、準則 2 和準則 3 均以網繭物件為基礎,並且未包含多個條件。在此情況下,可以使用 OR 或 AND 運算子來聯結準則 1 和準則 2。同樣地,也可以使用 OR 或 AND 運算子來聯結準則 2 和準則 3。
  • 準則 1 以網繭物件為基礎,準則 2 則使用兩個條件:一個條件使用服務物件,另一個條件使用命名空間物件。在此情況下,僅支援使用 OR 運算子來聯結準則 1 和準則 2。不允許使用 AND 運算子。
  • 準則 1 和準則 2 以網繭物件為基礎,準則 3 則使用兩個條件:一個條件使用服務物件,另一個條件使用命名空間物件。在此情況下,可以使用 AND 或 OR 運算子來聯結準則 1 和準則 2。但是,只能使用 OR 運算子來聯結準則 2 和準則 3。不允許使用 AND 運算子。

支援和不支援的功能

下表列出了在 Antrea 群組中新增成員資格準則時所支援的容器叢集物件、標籤運算子和範圍運算子。
容器叢集物件 物件屬性 標籤運算子 範圍運算子 範例準則

命名空間

名稱

等於

不適用

命名空間名稱等於生產

命名空間

標籤

等於

不等於

等於

命名空間標籤等於 DB,範圍等於伺服器

服務

名稱

不支援

不支援

服務名稱等於快取

網繭

標籤

等於

不等於

等於

網繭標籤等於 App,範圍等於伺服器

  • 命名空間物件和網繭物件目前不支援以下標籤運算子:
    • 包含
    • 開頭為
    • 結尾為
  • 在成員資格準則中,以服務物件為基礎的條件必須與以命名空間物件的名稱屬性為基礎的條件結合使用。換句話說,不允許只有服務物件的準則。
    範例:
    支援 不支援

    準則:

    服務名稱等於 My-Service

    命名空間名稱等於暫存

    準則:

    服務名稱等於 My-Service

  • 在成員資格準則中,以服務物件為基礎的條件必須與以網繭物件為基礎的條件結合使用。但是,您可以在兩個單獨的成員資格準則中分別新增服務物件和網繭物件,然後使用 OR 運算子將兩者聯結起來。
    範例:
    支援 不支援

    準則 1:服務名稱等於 My-Service

    準則 2:網繭標籤等於 DB,範圍等於伺服器

    準則:

    服務名稱等於 My-Service

    網繭標籤等於 DB,範圍等於伺服器

  • Antrea 群組中新增靜態成員時只支援使用 IP 位址。容器叢集物件不能作為靜態成員新增到 Antrea 群組中。
  • 新增 NSX-T 群組時,如果您嘗試將群組類型從 Antrea 變更為一般,或是從 Antrea 變更為僅限 IP 位址Antrea 會顯示資訊訊息。在確認變更之後,群組中的所有成員資格準則都會遺失。只有 IP 位址還保留在群組中。

    NSX-T 中實現 (儲存) Antrea 群組之後,就無法變更群組類型。一般僅限 IP 位址群組類型會變暗。

適用於 Kubernetes 1.20 版或更早版本的因應措施

Antrea 群組準則「命名空間名稱等於 Value」適用於 Kubernetes 1.21 版或更新版本。

Kubernetes 1.21 版或更新版本會自動在所有命名空間中新增特殊標籤,且「命名空間名稱等於 Value」準則會在內部使用此特殊標籤。但是,若為 Kubernetes 1.20 版或更早版本,則需要採取因應措施。您必須在用於建立事件的命名空間上登錄 Antrea 控制器 Webhook。呼叫 Antrea 控制器 Webhook 時,Antrea 控制器 會在新命名空間中新增特殊標籤,以便讓「命名空間名稱等於 Value」準則可以使用此標籤。如需有關登錄 Antrea 控制器 Webhook 的詳細資料,請參閱將 YAML 檔案提交至 Kubernetes API 伺服器中的步驟 3。

備註: Antrea 控制器 Webhook 僅對登錄 Webhook 後所建立的新命名空間有效。換句話說,現有命名空間 (如 kube-systemdefault) 不會取得特殊標籤,「命名空間名稱等於 Value」準則也無法用於這些命名空間。