與您的 Sidecar 告別:Istio 的環境模式在 v1.22 版本中達到 Beta 階段

第 4 層和第 7 層功能現在都已準備好用於生產環境。

2024 年 5 月 13 日 | 作者:Lin Sun - Solo.io,代表 Istio 指導委員會和技術監督委員會

今天,Istio 革命性的新環境資料平面模式已達到 Beta 階段。環境模式旨在簡化操作、擴展應用程式相容性並降低基礎架構成本。它為您提供了一個無 Sidecar 的資料平面,該平面已整合到您的基礎架構中,同時保持 Istio 零信任安全性、遙測和流量管理的核心功能。

環境模式於 2022 年 9 月宣布。從那時起,我們的社群投入了 20 個月的辛勤工作和協作,其中包括來自 Solo.io、Google、Microsoft、Intel、Aviatrix、Huawei、IBM、Red Hat 和許多其他公司的貢獻。1.22 中的 Beta 狀態表示環境模式的功能現在已準備好用於生產工作負載,並採取適當的預防措施。這是 Istio 的一個重要里程碑,它將第 4 層和第 7 層網格功能都帶入了生產準備就緒狀態,而無需 Sidecar。

為什麼選擇環境模式?

在聽取 Istio 使用者的回饋時,我們觀察到對應用程式的網格功能的需求不斷增長,但許多人發現 Sidecar 的資源開銷和操作複雜性難以克服。Sidecar 使用者與我們分享的挑戰包括在新增 Sidecar 後 Istio 如何破壞應用程式、Sidecar 對 CPU 和記憶體的巨大消耗,以及每次新代理程式發布時都需要重新啟動應用程式 Pod 的不便。

作為一個社群,我們設計了環境模式來解決這些問題,減輕了使用者在實作服務網格時先前遇到的複雜性障礙。新的功能集被命名為「環境模式」,因為它的設計對您的應用程式是透明的,確保無需額外組態即可採用它,並且不需要使用者重新啟動應用程式。

在環境模式中,可以輕鬆地將應用程式新增或移除出網格。您現在可以簡單地標記命名空間,該命名空間中的所有應用程式都會新增到網格中。這會立即使用 mTLS 保護所有流量的安全,而無需 Sidecar 或重新啟動應用程式。

有關我們為什麼建立環境模式的更多資訊,請參閱介紹環境網格部落格

環境模式如何使採用更容易?

Istio 的環境模式引入了輕量級、共用的第 4 層 (L4) 節點代理和可選的第 7 層 (L7) 代理,從而消除了資料平面中對傳統 Sidecar 代理的需求。環境模式背後的關鍵創新是它將 L4 和 L7 處理切分為兩個不同的層。這種分層方法使您可以逐步採用 Istio,從無網格平穩過渡到安全覆蓋 (L4),再到可選的完整 L7 處理 — 根據需要在整個機群中按每個命名空間進行。

環境模式的工作方式不需要對您現有的 Kubernetes 部署進行任何修改。您可以標記命名空間以將其所有工作負載新增到網格中,或根據需要選擇加入某些部署。透過使用環境模式,使用者可以繞過 Sidecar 模型先前的一些限制性元素。現在可以使用伺服器首先發送的協定,大多數保留連接埠現在都可用,並且消除了容器繞過 Sidecar 的能力(無論是惡意的還是非惡意的)。

輕量級的共用 L4 節點代理稱為ztunnel(零信任通道)。Ztunnel 大幅減少了執行網格的開銷,而無需在叢集中過度配置記憶體和 CPU 來處理預期的負載。在某些使用案例中,節省量可能超過 90% 或更多,同時仍然使用具有加密身分的相互 TLS、簡單的 L4 授權策略和遙測來提供零信任安全性。

L7 代理稱為航點。航點處理 L7 功能,例如流量路由、豐富的授權策略強制執行和企業級復原能力。航點在您的應用程式部署之外執行,並且可以根據您的需求獨立擴展,這可能是針對整個命名空間或命名空間內的多個服務。與 Sidecar 相比,您不需要每個應用程式 Pod 一個航點,您可以根據其範圍有效地擴展航點,因此在大多數情況下可以節省大量的 CPU 和記憶體。

L4 安全覆蓋層和 L7 處理層之間的分離允許逐步採用環境模式資料平面,這與早期二進制「全入式」注入 Sidecar 的方式不同。使用者可以從安全的 L4 覆蓋開始,該覆蓋提供了人們部署 Istio 的大多數功能(mTLS、授權策略和遙測)。然後可以根據具體情況啟用複雜的 L7 處理,例如重試、流量分割、負載平衡和可觀察性收集。

Beta 範圍內有哪些?

我們建議您在測試環境中驗證環境模式的以下 Beta 功能後,在生產環境中採用適當的預防措施進行探索

Alpha 功能

我們希望在環境模式中包含的許多其他功能已實作,但在此版本中仍處於 Alpha 狀態。請協助測試它們,以便它們可以在 1.23 或更高版本中升級為 Beta

路線圖

我們有許多功能尚未在環境模式中實作,但計劃在即將發布的版本中推出

Sidecar 怎麼樣?

Sidecar 不會消失,並且仍然是 Istio 中的一等公民。您可以繼續使用 Sidecar,它們將繼續受到完全支援。對於環境模式的 Alpha 或 Beta 範圍之外的任何功能,您應該考慮使用 Sidecar 模式,直到該功能新增到環境模式中。某些使用案例(例如基於來源標籤的流量轉移)仍然最好使用 Sidecar 模式來實作。雖然我們認為大多數使用案例都最好使用環境模式中的網格,但 Istio 專案仍然致力於持續支援 Sidecar 模式。

立即試用環境模式

隨著 Istio 的 1.22 版本和環境模式的 Beta 版本發布,現在比以往任何時候都更容易在您自己的工作負載上試用 Istio。請依照入門指南來探索環境模式,或閱讀我們新的使用者指南,以了解如何逐步採用環境模式來實現相互 TLS 和 L4 授權策略、流量管理、豐富的 L7 授權策略等等。您可以在Istio Slack 上的 #ambient 頻道中與開發人員互動,或在 GitHub 上使用討論論壇,以提出您可能有的任何問題。

分享此文章