您可以建立 Antrea 群組,並在分散式防火牆原則中作為來源或目的地,以保護 Antrea Kubernetes 叢集內網繭之間的流量。

備註: 在多承租人 NSX 環境中,目前在專案下不支援 Antrea 群組。只能在 NSX 環境的 預設視圖 (預設空間) 中,新增 Antrea 群組。

僅當 NSX 環境中已登錄一或多個 Antrea Kubernetes 叢集時,才支援 Antrea 群組功能。如果偵測到已登錄的 Antrea Kubernetes 叢集,則 NSX Manager 會在 UI 的新增群組頁面上,另外顯示一個名為 Antrea 的群組類型。您必須選取此群組類型,才能新增 Antrea 群組。

如果您的目標是保護 Antrea Kubernetes 叢集與 NSX 覆疊網路中虛擬機器之間的流量,您必須在動態成員資格準則中建立具有 Kubernetes 成員類型的一般群組,並在防火牆規則中使用這些群組。如需詳細資訊,請參閱動態成員資格準則中使用 Kubernetes 成員類型的一般群組

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

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

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

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

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

成員資格準則概觀

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

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

範例:
成員資格準則 說明

準則 1:

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

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

準則 2:

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

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

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

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

準則 3:

命名空間名稱等於生產

服務名稱等於快取

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

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

Antrea 群組可支援多個成員資格準則。若要聯結準則,可以使用 OR 和 AND 運算子。 NSX 依預設會選擇使用 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

    OR

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

    準則:

    服務名稱等於 My-Service

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

  • Antrea 群組中以靜態方式新增成員時,只支援使用 IP 位址。無法在 Antrea 群組中以靜態方式將「命名空間」、「網繭」和「服務」新增為成員。
  • 新增 NSX 群組時,如果您嘗試將群組類型從 Antrea 變更為一般,或是從 Antrea 變更為僅限 IP 位址Antrea 會顯示資訊訊息。在確認變更之後,群組中的所有成員資格準則都會遺失。只有 IP 位址還保留在群組中。

    NSX 中實現 (儲存) 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」準則也無法用於這些命名空間。