您好,登錄后才能下訂單哦!
istio各組件概念是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
本文檔介紹了Istio:一個連接,管理和保護微服務的開放平臺。Istio提供了一種通過負載平衡,服務到服務身份驗證,監控等創建已部署服務網絡的簡便方法,無需更改服務代碼。您可以通過在整個環境中部署特殊的邊車代理來添加對服務的Istio支持,該代理攔截微服務之間的所有網絡通信,使用Istio的控制平面功能進行配置和管理。
Istio目前支持Kubernetes上的服務部署,以及在Consul或Eureka注冊的服務以及在各個VM上運行的服務。
有關Istio組件的詳細概念信息,請參閱我們的其他概念指南。
隨著單片應用程序向分布式微服務架構過渡,Istio解決了開發人員和運營商面臨的許多挑戰。術語服務網格通常用于描述構成此類應用程序的微服務網絡以及它們之間的交互。隨著服務網格的大小和復雜性的增加,理解和管理變得更加困難。其要求可包括發現,負載平衡,故障恢復,指標和監控,以及通常更復雜的操作要求,如A / B測試,金絲片發布,速率限制,訪問控制和端到端身份驗證。
Istio通過提供整體服務網格的行為洞察和操作控制,提供完整的解決方案,以滿足微服務應用的各種需求。它在服務網絡中統一提供了許多關鍵功能:
交通管理。控制服務之間的流量和API調用流,使呼叫更可靠,并在面對不利條件時使網絡更加健壯。
服務身份和安全。在網格中提供具有可驗證身份的服務,并提供在流經不同可信度的網絡時保護服務流量的能力。
政策執行。將組織策略應用于服務之間的交互,確保實施訪問策略,并在消費者之間公平地分配資源。通過配置網格而不是通過更改應用程序代碼來進行策略更改。
遙測。了解服務之間的依賴關系以及它們之間的流量的性質和流量,提供快速識別問題的能力。
除了這些行為,Istio還可以擴展以滿足不同的部署需求:
平臺支持。Istio旨在運行在各種環境中,包括云,內部部署,Kubernetes,Mesos等。我們最初專注于Kubernetes,但很快就會努力支持其他環境。
集成和定制。策略實施組件可以擴展和定制,以與現有的ACL,日志記錄,監控,配額,審計等解決方案集成。
這些功能極大地減少了應用程序代碼,底層平臺和策略之間的耦合。這種減少的耦合不僅使服務更容易實現,而且使操作員更容易在環境之間移動應用程序部署或新的策略方案。因此,應用程序本身更具可移植性。
Istio服務網格在邏輯上被分成數據平面和控制平面。
該數據平面是由一組的部署為介導和控制微服務之間的所有網絡通信,與通用的策略和遙測轂(混頻器)沿著側柜智能代理(特使)的。
該控制平面是負責管理和配置代理服務器的路由流量,并配置攪拌機,在執行政策和收集遙測。
下圖顯示了構成每個平面的不同組件:
Istio建筑
Istio使用Envoy代理的擴展版本,這是一種用C ++開發的高性能代理,用于調解服務網格中所有服務的所有入站和出站流量。Istio利用Envoy的許多內置功能,例如動態服務發現,負載平衡,TLS終止,HTTP / 2和gRPC代理,斷路器,運行狀況檢查,基于%的流量分配的分階段部署,故障注入和豐富的指標。
特使在相同的Kubernetes吊艙中作為相關服務的邊車部署。這允許Istio將關于流量行為的大量信號作為屬性提取,這反過來它可以在Mixer中用于執行策略決策,并被發送到監控系統以提供有關整個網格行為的信息。sidecar代理模型還允許您將Istio功能添加到現有部署,而無需重新架構或重寫代碼。您可以在我們的設計目標中詳細了解我們選擇此方法的原因。
Mixer是一個獨立于平臺的組件,負責跨服務網格實施訪問控制和使用策略,并從Envoy代理和其他服務收集遙測數據。代理提取請求級別屬性,將其發送到Mixer進行評估。有關此屬性提取和策略評估的更多信息,請參閱混音器配置。Mixer包含一個靈活的插件模型,使其能夠與各種主機環境和基礎架構后端進行交互,從這些細節中抽象出Envoy代理和Istio管理的服務。
Pilot為Envoy邊車提供服務發現,為智能路由(例如,A / B測試,金絲雀部署等)提供流量管理功能,以及彈性(超時,重試,斷路器等)。它將控制流量行為的高級路由規則轉換為特定于Envoy的配置,并在運行時將它們傳播到sidecars。Pilot將特定于平臺的服務發現機制抽象化,并將其合成為符合Envoy數據平面API的任何邊車所消耗的標準格式。這種松散耦合允許Istio在多個環境(例如,Kubernetes,Consul / Nomad)上運行,同時為流量管理保持相同的操作員界面。
Citadel提供強大的服務到服務和最終用戶身份驗證,內置身份和憑證管理。它可用于升級服務網格中的未加密流量,并使運營商能夠基于服務標識而非網絡控制來實施策略。從版本0.5開始,Istio支持基于角色的訪問控制,以控制誰可以訪問您的服務。
官網地址:https://istio.io/docs/concepts/what-is-istio/overview/
根據官網文檔的個人理解:
Mixer :(可以理解為指標收集器,收集各項指標。對接外部組件做指標存儲,展示。如:Prometheus,Fluentd,Jaeger)
從Envoy代理和其他服務收集遙測數據。代理提取請求級別屬性,將其發送到Mixer進行評估。
演示如何從網格中收集遙測信息。
分布式跟蹤。如何配置代理以向Zipkin或Jaeger發送跟蹤請求
收集度量標準和日志。此任務說明如何配置Istio以收集度量標準和日志。
收集TCP服務的度量標準。此任務說明如何配置Istio以收集TCP服務的度量標準。
查詢普羅米修斯的指標。此任務說明如何使用Prometheus查詢Istio指標。
使用Grafana可視化度量標準。此任務說明如何設置和使用Istio儀表板來監視網格流量。
生成服務圖。此任務說明如何在Istio網格中生成服務圖。
使用流利的日志記錄。此任務說明如何配置Istio以記錄到Fluentd守護程序
Pilot :
功能:
注冊中心(zk,ectd)從k8s api獲取相關服務信息
配置中心 (spring cloud config,Apollo)。通過配置api,動態轉換為envoy的配置
Citadel:
安全中心
簡而言之:
Envoy:動態服務獲取,負載平衡,路由,斷路器,超時,指標上報。
Mixer:指標收集,對接外部組件(Prometheus,Fluentd,Jaeger)
Pilot:注冊中心,配置中心
Citadel:安全中心
關于istio各組件概念是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。