您可以使用動態成員資格準則中的 Kubernetes 成員類型 (資源) 來建立群組,以符合進入或離開 Antrea Kubernetes 叢集的流量。

然後,您可以在分散式防火牆規則或閘道防火牆規則中使用這些一般群組,來保護 NSX 環境中的虛擬機器與 Antrea Kubernetes 叢集中的網繭之間的流量。

此功能需要使用 VMware Container Networking™ with Antrea™ 1.6.0 或更新版本提供的 Antrea-NSX Interworking 版本。請參閱 1.6.0 版本說明

本說明文件使用「Kubernetes 成員類型」一詞,指的是可用來設定動態成員資格準則的「Kubernetes 資源」。

目前,使用 Kubernetes 成員類型的一般群組僅支援動態成員資格準則。您無法在一般群組定義中以靜態方式新增 Kubernetes 成員類型。

備註: 為了針對含有使用 Kubernetes 成員類型所定義的動態成員資格準則的一般群組,若要評估其有效的成員, NSX 會考慮由 Kubernetes 叢集使用 Antrea CNI 所報告的資源詳細目錄。在評估有效群組成員時,會忽略 Kubernetes 叢集使用 NCP CNI 所報告的資源詳細目錄。

成員資格準則中的 Kubernetes 成員類型

在一般群組中,僅當至少有一個 Antrea Kubernetes 叢集登錄至 NSX 環境中時,Kubernetes 成員類型才會顯示在成員資格準則頁面上。

備註: 在多承租人 NSX 環境中,Kubernetes 叢集資源不會向專案詳細目錄公開。因此,在專案中,您無法使用動態成員資格準則中的 Kubernetes 成員類型,來建立一般群組。

下表列出 NSX 4.1 及更新版本的預設視圖中的可用 Kubernetes 成員類型,這些成員類型可用來在一般群組中新增動態成員資格準則。每個 Kubernetes 成員類型各屬於叢集範圍或命名空間範圍。

成員類型 範圍

Kubernetes 叢集

叢集

Kubernetes 命名空間

命名空間

Kubernetes 節點

叢集

Kubernetes 服務

命名空間

Kubernetes 入口

命名空間

Kubernetes 閘道

命名空間

Antrea 出口

叢集

Antrea IP 集區

叢集

使用 Kubernetes 成員類型的條件所用的命名慣例

下表說明本說明文件中使用的命名慣例,以用來表示您可在動態成員資格準則中新增的各種不同條件,而這些準則是以 Kubernetes 成員類型為基礎。

條件的命名慣例 含義

Kubernetes 叢集條件

動態成員資格準則中的條件是以 Kubernetes 叢集成員類型為基礎。

Kubernetes 命名空間條件

動態成員資格準則中的條件是以 Kubernetes 命名空間成員類型為基礎。

資源條件

動態成員資格準則中的條件是以下列任意 Kubernetes 成員類型為基礎:
  • Kubernetes 服務
  • Kubernetes 入口
  • Kubernetes 閘道
  • Antrea 出口
  • Antrea IP 集區
  • Kubernetes 節點

叢集範圍的資源條件

動態成員資格準則中的條件是以下列任意 Kubernetes 成員類型為基礎:
  • Antrea 出口
  • Antrea IP 集區
  • Kubernetes 節點

命名空間範圍的資源條件

動態成員資格準則中的條件是以下列任意 Kubernetes 成員類型為基礎:
  • Kubernetes 服務
  • Kubernetes 入口
  • Kubernetes 閘道

使用 Kubernetes 成員類型的成員資格準則概觀

一個準則可以有一或多項條件。這些條件可以使用相同的 Kubernetes 成員類型,也可以混合使用不同的 Kubernetes 成員類型。不過,在成員資格準則中新增混合了多個成員類型的條件時,會有一些限制。請參閱本說明文件後面的在準則中使用 Kubernetes 成員類型時的限制一節。

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

若要聯結準則,可以使用 OR 和 AND 運算子。依預設, NSX 會選擇使用 OR 運算子,來聯結多個準則。在符合以下情況時,才支援在兩個準則之間使用 AND 運算子:
  • 這兩個準則會使用相同的 Kubernetes 成員類型。
  • 兩個準則均使用單一條件。
在新增多項條件時,會有以下限制:
  • 單一成員資格準則中最多支援 5 項具有相同 Kubernetes 成員類型的條件。例如,在準則中,您最多可以新增 5 項 Kubernetes 服務條件。
  • 單一成員資格準則中最多支援 15 項具有混合 Kubernetes 成員類型的條件。例如,在準則中,您可以混合新增 Kubernetes 命名空間條件和 Kubernetes 入口條件,這兩種條件的總數最多為 15 項。
  • 一個一般群組中最多支援 35 項具有混合成員類型的條件。

一個群組最多可有 5 個成員資格準則。不過,您在一般群組中所能新增的準則總數,取決於每個準則中的條件數。請參閱下列範例。

範例 1
一般群組具有 3 個成員資格準則,總共有 35 項條件:
  • 準則 1 具有 15 項混合成員類型的條件。
  • 準則 2 具有 15 項混合成員類型的條件。
  • 準則 3 具有 5 項相同成員類型的條件。
範例 2
一般群組具有 4 個成員資格準則,總共 35 項條件:
  • 準則 1 具有 15 項混合成員類型的條件。
  • 準則 2 具有 14 項混合成員類型的條件。
  • 準則 3 具有 4 項相同成員類型的條件。
  • 準則 4 具有 2 項相同成員類型的條件。
範例 3
一般群組具有 5 個成員資格準則,總共 22 項條件:
  • 準則 1 具有 10 項混合成員類型的條件。
  • 準則 2 具有 3 項相同成員類型的條件。
  • 準則 3 具有 4 項相同成員類型的條件。
  • 準則 4 具有 3 項相同成員類型的條件。
  • 準則 5 具有 2 項混合成員類型的條件。
由於該群組已達準則限制 (5 個),您無法新增其他成員資格準則。不過,必要時,您可以在任何這 5 個準則中新增更多條件,但不能超過前述的下列上限:
  • 單一準則中,最多有 5 項具有相同成員類型的條件。
  • 單一準則中,最多有 15 項具有混合成員類型的條件。
  • 一般群組中總共有 35 項條件。

在準則中使用 Kubernetes 成員類型時的限制

下表提供高階摘要,來說明在單一成員資格準則中使用 Kubernetes 成員類型時所適用的限制或驗證。如需驗證的範例,請參閱本說明文件後面的驗證使用 Kubernetes 成員類型的動態分組一節。

成員類型 在準則中使用成員類型時的限制 支援的屬性 標籤運算子 範圍運算子

Kubernetes 叢集

不能在準則中獨立使用。

一個準則中只允許使用一項叢集條件。

必須與至少一項 Kubernetes 資源條件混合使用。

(選用) 可以與 Kubernetes 命名空間條件和 Kubernetes 資源條件混合使用。

名稱

不支援

不支援

Kubernetes 命名空間

不能在準則中獨立使用。

不能與叢集範圍的資源條件混合使用。

必須與命名空間範圍的資源條件混合使用。

(選用) 可以與 Kubernetes 叢集條件混合使用。

名稱

標籤

等於 - 可以選取一個標籤

等於

Antrea 出口

可以在準則中獨立使用。

(選用) 可以與 Kubernetes 叢集條件混合使用。

名稱

標籤

等於 - 可以選取一個標籤

等於

Antrea IP 集區

可以在準則中獨立使用。

(選用) 可以與 Kubernetes 叢集條件混合使用。

名稱

標籤

等於 - 可以選取一個標籤

等於

Kubernetes 入口

可以在準則中獨立使用。

(選用) 可以只與 Kubernetes 命名空間條件或只與 Kubernetes 叢集條件混合使用,也可以同時與這兩種條件混合使用。

名稱

標籤

等於 - 可以選取一個標籤

等於

Kubernetes 閘道

可以在準則中獨立使用。

(選用) 可以只與 Kubernetes 命名空間條件或只與 Kubernetes 叢集條件混合使用,也可以同時與這兩種條件混合使用。

名稱

標籤

等於 - 可以選取一個標籤

等於

Kubernetes 服務

可以在準則中獨立使用。

(選用) 可以只與 Kubernetes 命名空間條件或只與 Kubernetes 叢集條件混合使用,也可以同時與這兩種條件混合使用。

名稱

標籤

等於 - 可以選取一個標籤

等於

Kubernetes 節點

可以在準則中獨立使用。

僅允許使用單一節點條件。

(選用) 可以與 Kubernetes 叢集條件混合使用。

不能與 Kubernetes 命名空間條件或 Kubernetes 資源條件混合使用。

IP 位址

網繭 CIDR

不支援

請參閱此資料表後面的「附註」。

不支援

備註: 當您透過 API 來建立使用 Kubernetes 節點成員類型的一般群組時,僅允許使用「符合」運算子。此運算子只能接受 * 值。* 萬用字元將符合 K8s 叢集中的所有節點 (如果 Kubernetes 節點條件與 Kubernetes 叢集條件混合使用),或者將符合所有叢集中的節點 (如果獨立使用 Kubernetes 節點條件)。

驗證使用 Kubernetes 成員類型的動態分組

驗證 1
一個成員資格準則最多具有一項 Kubernetes 叢集條件。若要依名稱找出相符的單一 Kubernetes 叢集,請使用「等於」運算子並輸入叢集名稱。
備註: Kubernetes 叢集名稱必須是唯一的。
如果您想找出單一 Kubernetes 叢集條件中多個相符的叢集,可以使用以下其中一個運算子:
  • 位於
  • 開頭為
  • 結尾為

範例:

符合單一 K8s 叢集 符合多個 K8s 叢集
準則:

Kubernetes 叢集名稱等於 ClusterA

準則:

ClusterA、ClusterB、ClusterC 中的 Kubernetes 叢集名稱

最多允許五個值 (以逗號分隔)。這些值不得以空格分隔。

驗證 2

具有一項 Kubernetes 叢集條件的成員資格準則可以與任一 Kubernetes 資源條件混合使用。如果您還在同一準則中新增 Kubernetes 命名空間條件,則資源條件必須僅限於命名空間範圍的資源條件。

範例:
  • 具有一項 Kubernetes 叢集條件和三項 Kubernetes 入口條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件和兩項 Antrea 出口條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件和三項 Antrea IP 集區條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件、一項 Kubernetes 命名空間條件和三項 Kubernetes 閘道條件的成員資格準則是有效的。
驗證 3
成員資格準則必須包含至少一項 Kubernetes 資源條件。只要成員資格準則包含以下條件,則無效:
  • 僅 Kubernetes 叢集條件
  • 僅 Kubernetes 命名空間條件
  • 僅 Kubernetes 叢集條件和 Kubernetes 命名空間條件
範例:
  • 具有一項 Kubernetes 叢集條件、一項 Kubernetes 命名空間條件和一項 Kubernetes 入口條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件、兩項 Kubernetes 命名空間條件和三項 Kubernetes 入口條件的成員資格準則是有效的。
驗證 4

一個成員資格準則只能有一項 Kubernetes 節點條件。(選用) 一項 Kubernetes 節點條件只能與一項 Kubernetes 叢集條件混合使用。

Kubernetes 節點條件不能與 Kubernetes 命名空間條件或 Kubernetes 資源條件混合使用。

僅具有一項 Kubernetes 節點條件的成員資格準則可以獨立使用。但是,僅具有一項 Kubernetes 節點條件的群組將符合登錄至 NSX 的所有 Antrea Kubernetes 叢集的節點。

Kubernetes 節點條件目前不支援「標籤」運算子和「範圍」運算子。

Kubernetes 節點條件支援以下兩個內容。

內容 說明

IP 位址

符合指定 Antrea Kubernetes 叢集的所有節點的內部 IP 位址。

網繭 CIDR

符合指定 Antrea Kubernetes 叢集的所有節點的網繭 CIDR。

驗證 5
如果成員資格準則包含 Kubernetes 叢集條件和 Kubernetes 命名空間條件,則必須包含至少一項命名空間範圍的 Kubernetes 資源條件。不能在同一準則中混合使用下列任何叢集範圍的 Kubernetes 資源條件:
  • Antrea 出口
  • Antrea IP 集區
  • Kubernetes 節點
範例:
  • 具有一項 Kubernetes 叢集條件、兩項 Kubernetes 命名空間條件和 Kubernetes 閘道條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件、四項 Kubernetes 命名空間條件和三項 Kubernetes 服務條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件、一項 Kubernetes 命名空間條件和一個 Antrea 出口條件的成員資格準則是無效的,因為 Antrea 出口是叢集範圍的資源。
驗證 6
成員資格準則必須包含至少一項 Kubernetes 資源條件。資源條件可以在準則中獨立使用。但是,如果在一個準則中新增多項資源條件,則所有資源條件必須具有相同的成員類型。
備註: Kubernetes 叢集條件和 Kubernetes 命名空間條件用來定義準則的範圍。它們不是 Kubernetes 資源條件,因此不受此驗證規則的限制。
範例:
  • 具有五項 Kubernetes 服務條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件、三項 Kubernetes 命名空間條件和四項 Kubernetes 服務條件的成員資格準則是有效的。
  • 具有一項 Kubernetes 叢集條件、三項 Kubernetes 命名空間條件、四項 Kubernetes 服務條件和三項 Kubernetes 入口條件的成員資格準則是無效的。原因是,您將兩種不同成員類型 (Kubernetes 服務和 Kubernetes 入口) 的資源條件混合用於同一準則中。

    但是,您可以建立個別的準則,且其含有以單一成員類型為基礎的資源條件,然後使用 OR 運算子,將兩個準則聯結在一起,如下所示:

    準則 1:

    一項 Kubernetes 叢集條件 + 三項 Kubernetes 命名空間條件 + 四項 Kubernetes 服務條件

    OR

    準則 2:

    一項 Kubernetes 叢集條件 + 三項 Kubernetes 命名空間條件 + 三項 Kubernetes 入口條件

驗證 7

在單一成員資格準則中,以 NSX 成員類型為基礎的條件,不能與以 Kubernetes 成員類型為基礎的條件混合使用。但是,您可以建立一個群組,其中一個準則僅以 NSX 成員類型為基礎,另一個準則僅以 Kubernetes 成員類型為基礎,然後使用 OR 運算子,將這兩個準則聯結在一起。

範例:

有效 無效

準則 1:

虛擬機器條件

OR

準則 2:

Kubernetes 叢集條件 + Kubernetes 閘道條件

準則:

NSX 區段條件 + 區段連接埠條件

AND

Kubernetes 叢集條件 + Kubernetes 閘道條件

使用 Kubernetes 成員類型的條件的有效成員

NSX 觀點來看,對於使用 Kubernetes 成員類型的群組,其有效成員可以是離散 IP 位址、IP 範圍,或是 IP 位址和連接埠清單。

下表提供一些範例。

範例群組定義 使用案例 說明 有效成員

Kubernetes 叢集條件

AND

Kubernetes 節點條件 (根據 IP 位址)

Antrea Kubernetes 叢集流向 NSX 的流量

符合指定叢集中的所有節點 IP 位址

IP 位址

Kubernetes 叢集條件

AND

Kubernetes 節點條件 (根據網繭 CIDR)

Antrea Kubernetes 叢集流向 NSX 的流量

符合指定叢集中所有節點的網繭 CIDR

網繭 CIDR

Kubernetes 叢集條件

AND

Antrea 出口條件 (根據名稱)

Antrea Kubernetes 叢集流向 NSX 的流量

符合指定叢集中的出口 (依名稱)

出口 IP 位址

Kubernetes 叢集條件

AND

Antrea 出口條件 (根據標籤)

AND

其他 Antrea 出口條件 (根據標籤)

Antrea Kubernetes 叢集流向 NSX 的流量

符合指定叢集中的出口 (依標籤)。

出口 IP 位址

Kubernetes 叢集條件

AND

Antrea IP 集區條件 (根據名稱)

Antrea Kubernetes 叢集流向 NSX 的流量

NSX 流向 Antrea Kubernetes 叢集的流量

符合指定叢集中的 IP 集區 (依名稱)

IP 範圍

Kubernetes 叢集條件

AND

Antrea IP 集區條件 (根據標籤)

AND

其他 Antrea IP 集區條件 (根據標籤)

Antrea Kubernetes 叢集流向 NSX 的流量

NSX 流向 Antrea Kubernetes 叢集的流量

符合指定叢集中的 IP 集區 (依標籤)

IP 範圍

Kubernetes 叢集條件

AND

Kubernetes 命名空間條件

AND

Kubernetes 入口條件 (根據名稱)

NSX 流向 Antrea Kubernetes 叢集的流量

符合指定叢集和命名空間中的入口 (依名稱)

入口 IP 位址

Kubernetes 叢集條件

AND

Kubernetes 命名空間條件

AND

Kubernetes 閘道條件 (根據名稱)

NSX 流向 Antrea Kubernetes 叢集的流量

符合指定叢集和命名空間中的閘道 (依名稱)

閘道 IP 位址

Kubernetes 叢集條件

AND

Kubernetes 命名空間條件

AND

Kubernetes 入口條件 (根據標籤)

AND

其他 Kubernetes 入口條件 (根據標籤)

NSX 流向 Antrea Kubernetes 叢集的流量

符合指定叢集和命名空間中的入口 (依標籤)

入口 IP 位址

Kubernetes 叢集條件

AND

Kubernetes 命名空間條件

AND

Kubernetes 閘道條件 (根據標籤)

其他 Kubernetes 閘道條件 (根據標籤)

NSX 流向 Antrea Kubernetes 叢集的流量

符合指定叢集和命名空間中的閘道 (依標籤)

閘道 IP 位址

Kubernetes 叢集條件

AND

Kubernetes 命名空間條件

AND

Kubernetes 服務條件 (根據標籤,且類型=LoadBalancer)

AND

其他 Kubernetes 服務條件 (根據標籤,且類型=LoadBalancer)

NSX 流向 Antrea Kubernetes 叢集的流量

符合指定叢集和命名空間中的服務 (LoadBalancer) (依標籤)

負載平衡器入口 IP 位址

Kubernetes 叢集條件

AND

Kubernetes 命名空間條件

AND

Kubernetes 服務條件 (根據名稱,類型=ClusterIP,且已啟用 NodePortLocal 功能)

NSX 流向 Antrea Kubernetes 叢集的流量 符合指定叢集和命名空間中的服務 (ClusterIP,且已啟用 NodePortLocal) (依名稱)。

節點 IP 位址、NodePortLocal 範圍