介紹 Sail Operator:一種管理 Istio 的新方法
介紹 Sail Operator 來管理 Istio,這是 istio-ecosystem 組織的一部分專案。
隨著最近 Istio 1.23 中 In-Cluster IstioOperator 棄用的公告,以及在 Istio 1.24 中隨後的刪除,我們希望讓大家了解 Red Hat 團隊一直在開發的新 Operator,作為 istio-ecosystem 組織的一部分來管理 Istio。
Sail Operator 管理 Istio 控制平面的生命週期,使叢集管理員更容易、更有效率地在大型生產環境中部署、配置和升級 Istio。Sail Operator 的 API 並非建立新的配置架構並重新發明輪子,而是圍繞 Istio 的 Helm Chart API 而建。Istio Helm Chart 公開的所有安裝和配置選項,都可以透過 Sail Operator CRD 的 values 欄位取得。這表示您可以使用熟悉的配置輕鬆管理和自訂 Istio,而無需學習其他項目。
Sail Operator 有 3 個主要的資源概念
- Istio:用於管理 Istio 控制平面。
- Istio Revision:代表該控制平面的修訂版本,它是具有特定版本和修訂名稱的 Istio 實例。
- Istio CNI:用於管理 Istio CNI 外掛程式的資源和生命週期。若要安裝 Istio CNI 外掛程式,您需要建立一個
IstioCNI
資源。
目前,Sail Operator 的主要功能是更新策略。此 Operator 提供一個介面來管理 Istio 控制平面的升級。它目前支援兩種更新策略
- 原地更新:使用
InPlace
策略,現有的 Istio 控制平面會被新版本取代,並且工作負載的 Sidecar 會立即連線到新的控制平面。這樣,工作負載就不需要從一個控制平面實例移至另一個實例。 - 基於修訂的版本:使用
RevisionBased
策略,每次變更Istio.spec.version
欄位時,都會建立一個新的 Istio 控制平面實例。舊的控制平面會保留到位,直到所有工作負載都已移至新的控制平面實例。您可以選擇設定updateWorkloads
旗標,以便在新控制平面準備就緒時自動將工作負載移至新的控制平面。
我們知道,升級 Istio 控制平面具有風險,對於大型部署而言,可能需要大量的人工投入,這就是我們目前關注的重點。對於未來,我們正在研究 Sail Operator 如何更好地支援多租戶和隔離、多叢集聯邦等使用案例,以及簡化與第三方專案的整合。
Sail Operator 專案仍處於 alpha 階段,並且正在積極開發中。請注意,作為一個 istio-ecosystem 專案,它不屬於 Istio 專案的支援範圍。我們正在積極尋求社群的回饋和貢獻。如果您想參與此專案,請參閱儲存庫的文件和貢獻指南。如果您是使用者,也可以按照使用者文件中的指示試用新的 Operator。
如需更多資訊,請聯絡我們