引言
Linkerd 作為 Kubernetes 原生服務網格,持續透過 Gateway API 與多叢集整合等技術演進,強化其在雲原生生態中的定位。本次更新聚焦於 Gateway API 的深度整合、Client 管理的簡化,以及多叢集場景的擴展性提升,為企業級服務網格應用提供更強大的功能與靈活性。
服務網格定位與技術哲學
Linkerd 自 CNCF 畢業後,以輕量、快速與內建安全為核心設計哲學。其自研的 Rust 電腦代理(micro proxy)不僅提升資源效率,更透過記憶體安全機制降低潛在風險。預設的 MTLS 安全機制與內建可觀察性,使 Linkerd 成為 Kubernetes 生態中服務網格的首選方案。
主要更新內容
Gateway API 的深度整合
- 版本 216:將原有
service profiles
的路由行為遷移至 Gateway API,支援 HTTP、gRPC 與 TCP/TLS 路由配置,實現更靈活的流量管理。
- 版本 217:升級至 Gateway API v1,兼容 v1 至 v121 版本,並支援標準與實驗性通道(含 TCP/TLS 路由)。同時移除預設安裝 Gateway API CRDs,轉為依賴現有集群資源,降低安裝複雜度。
- 版本 218(預計發佈):透過 Helm Chart 聲明式管理多叢集連結,簡化 GitOps 流程,並透過
appProtocol
字段明確指定流量協議,避免協議偵測失敗。
多叢集與 Egress 功能增強
- Egress 速率限制:新增
HTTP local rate limit policy
資源,支援全域或客戶端粒度的請求限制,防禦過載。
- Federated Services:跨叢集服務聚合透過負載平衡訪問不同叢集的相同服務,提升跨集群流量管理能力。
- Egress 網路追蹤:新增
egress network
CRD,支援路由配置與流量控制策略,如 TLS 主機名標註與拒絕策略。
- 策略審計模式:先驗證策略正確性再切換至預設拒絕(default deny),避免應用程式中斷。
客戶端與安裝流程優化
- Client 管理:將 Link 作為 Helm Chart 值(values)進行宣告式管理,升級時自動同步更新所有 Link,提升 GitOps 友善性。
- 安裝流程簡化:避免分離步驟(install + linking),降低多叢集配置的學習曲線。
技術重點與優勢
- 資源效率:Rust 電腦代理優化記憶體與 CPU 使用,支援微秒級效能,確保高吞吐量場景下的穩定性。
- 安全機制:預設 MTLS、策略審計模式與協議宣告,降低協議偵測錯誤風險,強化端到端安全。
- 可觀察性:Egress 網路追蹤與指標收集,提供完整的流量監控視圖,協助快速診斷問題。
- 多叢集支援:Federated Services 跨叢集負載平衡與 GitOps 兼容的多叢集配置,提升企業級部署的靈活性。
- API 兼容性:Gateway API 升級至 v1,減少與其他項目資源衝突,確保長期可維護性。
未來計畫與性能考量
- Windows 支援:完成 Link Proxy 在 Windows 環境的驗證,擴展服務網格的應用場景。
- Ingress 用例優化:整合 TLS 與 MTLS 流程,減少雙 Proxy 配置需求,簡化網路架構。
- Egress TLS 起源:支援未加密請求自動建立 TLS 連線,實現 Layer 7 載入平衡與監控。
- Mesh Expansion 延伸:未來將支援非 Kubernetes 工作負載加入服務網格,並加入私網支援。
- 身份管理(Spiffy):探索在 Cluster 內部使用 Spiffy 作為身份提供者,強化服務間信任機制。
- 協議偵測機制:理想情況下無延遲,但若無法立即讀取資料,會有 10 秒延遲。透過宣告式協議設定可避免延遲,但需權衡複雜度與效能優勢。
總結
Linkerd 透過 Gateway API 的深度整合與多叢集功能的強化,持續提升其在 Kubernetes 生態中的競爭力。企業在部署服務網格時,應關注 Gateway API 的版本兼容性、Egress 管理策略,以及多叢集配置的聲明式管理。未來隨著 Windows 支援與 Mesh Expansion 的延伸,Linkerd 將進一步擴展其應用場景,成為雲原生架構中不可或缺的基礎設施。