Dataplane V2

Dataplane V2 是 GKE 和 GKE 叢集的資料層,專為 Kubernetes 網路最佳化。本頁將概略介紹 Dataplane V2 的功能和運作方式。

簡介

Dataplane V2 提供以下功能:

  • 在 GKE 和所有 GKE 叢集環境中,提供一致的網路使用者體驗。如要瞭解支援 Dataplane V2 的環境,請參閱「Dataplane V2 適用情形」。
  • 即時掌握網路活動。
  • 架構更簡單,方便管理及排解叢集問題。

Dataplane V2 以 eBPF 和 Linux 節點為基礎,可使用 Kubernetes 專屬中繼資料,在核心中彈性且有效率地處理網路封包。

Dataplane V2 的優點

安全性

在啟用 Dataplane V2 的叢集中,Kubernetes 網路政策一律為啟用狀態。您不必安裝及管理 Calico 等第三方軟體外掛程式,即可強制執行網路政策。

擴充性

Dataplane V2 旨在改善大型叢集的路由。不會使用 kube-proxy 或 iptables。

作業

使用 Dataplane V2 建立叢集時,系統會內建網路政策記錄功能。如要查看 Pod 物件允許和拒絕連線的時間,請在叢集上設定記錄 CRD

一致性

Dataplane V2 可在 GKE 和其他 GKE 叢集環境中使用,並提供相同功能。詳情請參閱「Dataplane V2 的適用情形」。

Dataplane V2 的運作方式

封包抵達節點時,核心中安裝的 eBPF 程式會決定如何轉送及處理封包。與使用 iptables 進行封包處理不同,eBPF 程式可以在封包中使用 Kubernetes 專屬中繼資料。這樣一來,Dataplane V2 就能在核心中有效處理網路封包,並將註解動作回報給使用者空間以供記錄。下圖顯示封包透過節點的路徑 (使用 Dataplane V2):

抵達節點的封包會由 eBPF 在核心中處理。eBPF 程式會執行政策強制執行、服務解析和連線追蹤作業。這項活動會回報給使用者空間以供記錄。封包酬載隨後會傳送至 Pod。

節點上的 Dataplane V2 控制器稱為 anetdanetd 會以 DaemonSet 形式部署到每個節點,負責解讀 Kubernetes 物件,並在 eBPF 中編寫網路拓撲。anetd 控制器會取代服務路由 kube-proxy,以及在 kube-system 命名空間中執行的路由。

GKE 叢集上的 Dataplane V2 會以疊加網路模式運作。在這個模式中,所有叢集節點都會使用 Geneve 封裝通訊協定,形成通道網格。所有容器間的網路流量都會透過這些通道轉送。這個模型的主要優點是叢集節點不必瞭解基礎 Azure 網路設定。

後續步驟