全部產品
Search
文件中心

Container Service for Kubernetes:Datapath V2下最佳實務

更新時間:Mar 03, 2026

本文介紹在使用Terway網路外掛程式的叢集中,啟用Datapath V2後如何最佳化叢集的網路設定,例如Conntrack參數配置、Identity資源管理等,以提升叢集效能和穩定性。

最佳化Conntrack配置

Conntrack是Linux核心中的串連跟蹤模組,用於跟蹤網路連接的狀態。在Datapath V2模式下,容器網路的Conntrack由eBPF程式提供。您可以參見最佳化Terway模式下conntrack配置來調整Conntrack參數,例如調整Conntrack表大小、調整TCP連結記錄逾時時間,以適配高並發服務等情境下的網路需求。

限制Identity數量

在 Datapath V2 功能中,NetworkPolicy通過 eBPF 技術實現。與傳統的基於 Netfilter 的方式不同,在 eBPF 的實現中,系統會為每個 Pod 分配一種 Identity作為身份ID標識,用於精準管理網路許可權。

Identity由 Pod 標籤和Namespace標籤組合而成,具有相同標籤組合的 Pod 會被分配同一個 Identity,以便統一管控它們的網路訪問規則。

NetworkPolicy的規則會通過 IP-Identity 映射來判斷流量是否符合策略。簡單來說,系統會使用 Pod 的 IP 地址與其 Identity,判斷是否允許該流量通過。

  • 若您沒有開啟NetworkPolicy功能,Identity無任何作用,Terway會自動限制Identity數量。

  • 若您啟用NetworkPolicy功能,您應當避免一組相同身份的Pod,具備不同的標籤。使用不同標籤會產生大量Identity資源,可能會造成叢集管控壓力升高,IP分配速度下降。

通過配置標籤過濾,可以避免無效的標籤被記錄到Identity中。

配置標籤過濾

警告

此操作包含重要內容,請謹慎操作。

  • 調整標籤過濾規則會觸發Identity建立,短時間內Identity數量會增加,API Server資源開銷也會有不同程度的增加。

  • 配置錯誤的標籤過濾規則會導致NetworkPolicy策略失效。

    • 不可過濾所有標籤:需為每組 Pod 保留至少一個標籤(Namespace 或 Pod 標籤),否則系統將無法識別該 Pod 的身份。

    • 被過濾的標籤無法用於策略規則:如果某個標籤被添加到過濾列表中,該標籤將無法在 NetworkPolicy 規則中被引用。請確保僅過濾無效標籤。

關於配置標籤過濾的文法,請參見Cilium

關於在Terway中如何配置,請參見自訂Terway配置參數cilium_args相關內容。

服務負載平衡 Map 大小調整

Cilium 使用名為 cilium_lb{4,6}_services_v2 的 LB Service Maps來儲存 ClusterIP 和 NodePort 類型服務的負載平衡條目。這些映射通過 --bpf-lb-map-max 標誌進行配置,預設設定為 64k。如果此映射已滿,Cilium 可能無法更新服務端點,這可能會影響到服務 IP 的連通性或建立新服務的能力。

服務 LB 映射所需的大小取決於多個因素。

每個 ClusterIP/NodePort 服務建立的條目數量等於該服務選擇的後端 Pod 數量乘以相應 Service spec 中的連接埠、協議條目數量。

利用這一點,我們可以粗略估算所需的映射大小為:

注意這種估算假設每個服務選擇的 Pod 數量和連接埠/協議條目數大致呈常態分佈。如果您的用例存在較大的異常值(例如,某個服務選擇了非常大量的 Pod 後端),則可能需要進行更詳細的估算。
警告

調整bpf-lb-map-max參數並重啟 Cilium 會導致串連中斷,因為新映射需要重新填充現有的服務條目。