介紹 Istio v1 API
為了反映 Istio 功能的穩定性,我們的網路、安全和遙測 API 在 1.22 版本中升級至 v1。
Istio 提供 網路、安全 和 遙測 API,這些 API 對於確保服務網格內服務的強大安全性、無縫連線和有效的可觀察性至關重要。這些 API 被全球數千個叢集使用,保護並增強關鍵基礎設施。
由這些 API 驅動的大部分功能已經被認為是穩定的一段時間了,但 API 版本仍然停留在 v1beta1
。為了反映這些資源的穩定性、採用和價值,Istio 社群決定在 Istio 1.22 中將這些 API 升級至 v1
。
在 Istio 1.22 中,我們很高興宣布已協同努力將以下 API 升級至 v1
功能穩定性和 API 版本
宣告式 API(例如 Kubernetes 和 Istio 使用的 API)將資源的描述與作用於它的實作分開。
Istio 的功能階段定義描述了穩定功能(被認為可以隨時隨地在生產環境中使用,並帶有正式的棄用策略)應如何與 v1
API 相匹配。我們現在正在兌現這一承諾,我們的 API 版本與我們的功能穩定性相匹配,對於已經穩定一段時間的功能以及在此版本中新指定為穩定的功能都是如此。
儘管目前沒有計劃停止支援之前的 v1beta1
和 v1alpha1
API 版本,但我們鼓勵使用者通過更新現有的 YAML 檔案手動轉換到使用 v1
API。
遙測 API
v1
遙測 API 是唯一一個升級的 API,其與之前的 API 版本相比有所變更。以下 v1alpha1
功能未升級至 v1
metrics.reportingInterval
報告間隔允許配置呼叫以進行指標報告的時間間隔。目前僅支援 TCP 指標,但未來可能會將其用於長時間的 HTTP 串流。
目前,Istio 缺少使用數據來支持此功能的需求。
accessLogging.filter
如果指定,此篩選器將用於選擇特定的請求/連線以進行記錄。
此功能基於 Envoy 中相對較新的功能,Istio 需要進一步開發用例和實作,然後再將其升級至
v1
。
tracing.useRequestIdForTraceSampling
此值預設為 true。此請求 ID 的格式是 Envoy 特有的,如果接收使用者流量的代理產生的請求 ID 不是 Envoy 特有的,Envoy 將會因為無法解讀請求 ID 而中斷追蹤。通過將此值設定為 false,我們可以防止 Envoy 基於請求 ID 進行取樣。
沒有強烈的用例需要通過遙測 API 讓此設定可配置。
請通過在 GitHub 上建立問題分享您對這些欄位的任何回饋。
Istio CRD 概述
這是支援的 API 版本的完整清單
類別 | API | 版本 |
---|---|---|
網路 | 目標規則 | v1 、v1beta1 、v1alpha3 |
Istio 閘道 | v1 、v1beta1 、v1alpha3 | |
服務條目 | v1 、v1beta1 、v1alpha3 | |
邊車範圍 | v1 、v1beta1 、v1alpha3 | |
虛擬服務 | v1 、v1beta1 、v1alpha3 | |
工作負載條目 | v1 、v1beta1 、v1alpha3 | |
工作負載群組 | v1 、v1beta1 、v1alpha3 | |
代理配置 | v1beta1 | |
Envoy 篩選器 | v1alpha3 | |
安全 | 授權原則 | v1 、v1beta1 |
對等驗證 | v1 、v1beta1 | |
請求驗證 | v1 、v1beta1 | |
遙測 | 遙測 | v1 、v1alpha1 |
擴充功能 | Wasm 外掛程式 | v1alpha1 |
Istio 也可以使用 Kubernetes 閘道 API 進行配置。
使用 v1
Istio API
Istio 中有一些 API 仍在積極開發中,並且在版本之間可能會發生變更。例如,Envoy 篩選器、代理配置和 Wasm 外掛程式 API。
此外,由於 CRD 版本控制 的限制,Istio 在 API 的所有版本中都保持嚴格相同的綱要。因此,即使有 v1
遙測 API,當宣告 v1
遙測 API 資源時,仍然可以使用上述三個 v1alpha1
欄位。
對於風險規避環境,我們添加了穩定驗證原則,這是一個驗證許可原則,可以確保只有 v1
API 和欄位與 Istio API 一起使用。
在新環境中,在安裝 Istio 時選擇穩定驗證原則將保證所有未來建立或更新的自訂資源都是 v1
並且只包含 v1
功能。
如果將該原則部署到現有的 Istio 安裝中,而該安裝具有不符合該原則的自訂資源,則唯一允許的操作是刪除資源或移除對違規欄位的使用。
要使用穩定驗證原則安裝 Istio
$ helm install istio-base -n istio-system --set experimental.stableValidationPolicy=true
要在使用該原則安裝 Istio 時設定特定修訂版本
$ helm install istio-base -n istio-system --set experimental.stableValidationPolicy=true -set revision=x
此功能與 Kubernetes 1.30 及更高版本相容。驗證是使用 CEL 表達式建立的,使用者可以根據自己的特定需求修改驗證。
摘要
Istio 專案致力於提供對服務網格成功運作至關重要的穩定 API 和功能。我們很樂意接收您的回饋,以幫助我們在繼續改進相關用例和功能穩定性障礙時做出正確的決策。請通過建立問題、在相關的 Istio Slack 頻道中發佈或加入我們每週的工作組會議來分享您的回饋。