Istio 是一個開源服務網格,可以透明地分層到現有的分散式應用程式上。 Istio 的強大功能提供了一種統一且更有效的方式來保護、連接和監控服務。 Istio 是實現負載平衡、服務間身份驗證和監控的途徑——只需很少或無需更改服務代碼。
有關如何使用 Istio 的深入信息,請訪問 istio.io
要提出問題並從我們的社區獲取幫助,請訪問 Github 討論
要了解如何參與我們的整個社區,請造訪我們的社區頁面
在本自述文件中:
介紹
儲存庫
問題管理
此外,您可能還想閱讀以下一些其他文件:
Istio 社區 - 描述如何參與 Istio 專案並為其做出貢獻
Istio 開發人員指南 - 說明如何設定和使用 Istio 開發環境
專案約定 - 描述我們在程式碼庫中使用的約定
創建快速和精益的程式碼 - 面向效能的程式碼庫建議和指南
您可以在我們的 Wiki 上找到許多其他有用的文件。
Istio 是一個開放式平台,提供統一的方式來整合微服務、管理跨微服務的流量、執行策略和聚合遙測資料。 Istio 的控制平面在底層叢集管理平台(例如 Kubernetes)上提供了一個抽象層。
Istio 由以下組件組成:
Envoy - 每個微服務的 Sidecar 代理,用於處理叢集中服務之間以及從服務到外部服務的入口/出口流量。這些代理程式形成一個安全的微服務網格,提供豐富的功能,例如發現、豐富的第 7 層路由、斷路器、策略執行和遙測記錄/報告功能。
注意:服務網格不是覆蓋網路。它簡化並增強了應用程式中的微服務透過底層平台提供的網路相互通訊的方式。
Istiod - Istio 控制平面。它提供服務發現、配置和憑證管理。它由以下子組件組成:
Pilot - 負責在運行時配置代理程式。
Citadel - 負責證書頒發和輪調。
Galley - 負責在 Istio 內驗證、攝取、聚合、轉換和分發配置。
Operator - 此元件提供使用者友善的選項來操作 Istio 服務網格。
Istio 專案分為幾個 GitHub 儲存庫:
istio/api。此儲存庫定義了 Istio 平台的元件級 API 和通用配置格式。
Istio/社區。該儲存庫包含有關 Istio 社群的信息,包括管理 Istio 開源專案的各種文件。
伊斯蒂奧/伊斯蒂奧。這是主要的程式碼儲存庫。它託管 Istio 的核心元件、安裝工件和範例程式。它包括:
istioctl。該目錄包含istioctl命令列實用程式的程式碼。
飛行員。該目錄包含特定於平台的程式碼,用於填充抽象服務模型、在應用程式拓撲變更時動態重新配置代理程式以及將路由規則轉換為代理特定配置。
安全。目錄包含安全相關的程式碼,包括Citadel(充當憑證授權單位)、citadel 代理等。
istio/代理。 Istio 代理程式包含 Envoy 代理程式的擴充功能(以 Envoy 過濾器的形式),支援身份驗證、授權和遙測收集。
istio/ztunnel。此儲存庫包含環境網格的 ztunnel 元件的 Rust 實作。
istio/client-go。此儲存庫定義了自動產生的 Kubernetes 用戶端,用於以程式設計方式與 Istio 資源進行互動。
筆記
只有istio/api
和istio/client-go
儲存庫公開了可直接用作庫的穩定介面。
我們使用 GitHub 來追蹤所有錯誤和功能請求。我們追蹤的每個問題都有各種元數據:
史詩。史詩代表了整個 Istio 的一個功能領域。史詩的範圍相當廣泛,基本上是產品層級的東西。每個問題最終都是史詩的一部分。
里程碑。每個問題都分配有一個里程碑。這是 0.1、0.2、... 或「模糊的未來」。該里程碑表明我們認為該問題何時應該解決。
優先事項。每個問題都有一個優先級,由優先級項目中的列表示。優先權可以是 P0、P1、P2 或 >P2 之一。優先順序表明在里程碑中解決問題的重要性。 P0 表示,如果問題沒有解決,就不能認為已經實現了里程碑。
Istio 是一個雲端原生運算基金會專案。