- 前言
- CNI 插件(Beta)
- 外部控制平面(Beta)
- 網(wǎng)關(guān)注入
- 對修訂和標(biāo)簽部署的更新
- 支持 Kubernetes 多集群服務(wù)(MCS)(實驗性)
- 預(yù)告:新的 API
- 小結(jié)
- 延伸閱讀
- 參考
前言
Istio 1.11
是 Istio 在 2021 年發(fā)布的第三個版本,正式支持 Kubernetes 版本 1.18.0
到 1.22.x
逐样。以下是此版本的一些亮點。
CNI 插件(Beta)
默認(rèn)情況下,Istio 會在部署在網(wǎng)格的 pod 中注入一個 init 容器桥言。istio-init
容器使用 iptables 設(shè)置 pod 網(wǎng)絡(luò)流量重定向到(來自)Istio sidecar 代理。這需要網(wǎng)格中部署 pod 的用戶或服務(wù)賬戶有足夠的權(quán)限來部署具有 NET_ADMIN
和 NET_RAW
功能的容器葵礼。要求 Istio 用戶擁有較高的 Kubernetes 權(quán)限号阿,對于組織內(nèi)的安全合規(guī)性來說是有問題的。Istio CNI 插件是 istio-init
容器的替代品鸳粉,它執(zhí)行相同的網(wǎng)絡(luò)功能扔涧,但不要求 Istio 用戶啟用更高的 Kubernetes 權(quán)限。
CNI 插件可以與其他插件同時使用,并支持大多數(shù)托管的 Kubernetes 實現(xiàn)枯夜。
在這個版本中弯汰,我們通過改進(jìn)文檔和測試,將 CNI 插件功能提升為 Beta 版卤档,以確保用戶能夠在生產(chǎn)中安全地啟用這一功能帝洪。了解如何用 CNI 插件安裝 Istio甸私。
外部控制平面(Beta)
去年轴踱,我們?yōu)?Istio 引入了一種新的部署模式泥从,即集群的控制平面是在該集群之外管理的。這就解決了這樣一個問題 —— 將管理控制平面的 Mesh 所有者和在 Mesh 中部署和配置服務(wù)的 Mesh 用戶之間分離舔腾。運行在獨立集群中的外部控制平面可以控制單個數(shù)據(jù)平面集群或多集群網(wǎng)格的多個集群溪胶。
在 1.11 版本中,該功能已被提升為 Beta 版稳诚。了解如何設(shè)置帶有外部控制平面的網(wǎng)格哗脖。
網(wǎng)關(guān)注入
Istio 提供了網(wǎng)關(guān)作為與外部世界連接的方式。你可以部署入口網(wǎng)關(guān)和出口網(wǎng)關(guān)扳还,前者用于接收來自集群外的流量才避,后者用于從你的應(yīng)用程序向集群外部署的服務(wù)輸出流量。
在過去氨距,Istio 版本會將網(wǎng)關(guān)部署為一個 Deployment
桑逝,它的代理配置與集群中所有其他的 Sidecar 代理完全分開。這使得網(wǎng)關(guān)的管理和升級變得復(fù)雜俏让,特別是當(dāng)集群中部署了多個網(wǎng)關(guān)時楞遏。一個常見的問題是,從控制平面?zhèn)鞯?sidecar 代理的設(shè)置和網(wǎng)關(guān)可能會漂移首昔,導(dǎo)致意外的問題寡喝。
網(wǎng)關(guān)注入將對網(wǎng)關(guān)的管理變得與一般的 sidecar 代理相同。在代理上設(shè)置的全局配置將適用于網(wǎng)關(guān)勒奇,以前不可能的復(fù)雜配置(例如预鬓,將網(wǎng)關(guān)作為 DaemonSet 運行)現(xiàn)在很容易。在集群升級后赊颠,你也可以簡單地通過重啟 pod 將網(wǎng)關(guān)更新到最新版本格二。
除了這些變化之外,我們還發(fā)布了新的安裝網(wǎng)關(guān)文檔巨税,其中包括安裝蟋定、管理和升級網(wǎng)關(guān)的最佳做法粉臊。
對修訂和標(biāo)簽部署的更新
在 Istio 1.6 中草添,我們增加了對同時運行多個控制平面的支持,這使得你可以對新的 Istio 版本進(jìn)行金絲雀式部署扼仲。在 1.10 版本中远寸,我們引入了修訂標(biāo)簽(revision tag)抄淑,這讓你可以將一個修訂版標(biāo)記為 production
或 testing
,并在升級時將出錯的機(jī)會降到最低驰后。
istioctl tag
命令在 1.11 中已經(jīng)不再是實驗性了肆资。你現(xiàn)在也可以為控制平面指定一個默認(rèn)的修訂版。這有助于進(jìn)一步簡化從無修訂版的控制平面到新版本的金絲雀升級灶芝。
我們還修復(fù)了一個關(guān)于升級的懸而未決的問題 —— 你可以安全地對你的控制平面進(jìn)行金絲雀升級郑原,不管它是否使用修訂版安裝。
為了改善 sidecar 的注入體驗夜涕,引入了 istio-injection
和 sidecar.istio.io/inject
標(biāo)簽犯犁。我們建議你使用注入標(biāo)簽,因為比注入注解的性能更好女器。我們打算在未來的版本中棄用注入注解酸役。
支持 Kubernetes 多集群服務(wù)(MCS)(實驗性)
Kubernetes 項目正在建立一個多集群服務(wù) API,允許服務(wù)所有者或網(wǎng)格管理員控制整個網(wǎng)格的服務(wù)及其端點的輸出驾胆。
Istio 1.11 增加了對多集群服務(wù)的實驗性支持涣澡。一旦啟用,服務(wù)端點的可發(fā)現(xiàn)性將由客戶端位置和服務(wù)是否被導(dǎo)出決定丧诺。駐留在與客戶端相同的集群中的端點將總是可被發(fā)現(xiàn)入桂。然而,在不同集群內(nèi)的端點锅必,只有當(dāng)它們被導(dǎo)出到網(wǎng)格時事格,才會被客戶端發(fā)現(xiàn)。
注意搞隐,Istio 還不支持 MCS 規(guī)范所定義的 cluster.local
和 clusterset.local
主機(jī)的行為驹愚。客戶應(yīng)該繼續(xù)使用 cluster.local
或 svc.namespace
來稱呼服務(wù)劣纲。
這是我們支持 MCS 計劃第一階段逢捺。請繼續(xù)關(guān)注!
預(yù)告:新的 API
Istio 的一些功能只能通過 EnvoyFilter 來配置癞季,它允許你設(shè)置代理配置劫瞳。我們正在為常見的用例開發(fā)新的 API —— 比如配置遙測和 WebAssembly(Wasm)擴(kuò)展部署,在 1.12 版本中你可以看到這些功能绷柒。如果你有興趣幫助我們測試這些實現(xiàn)志于,請加入工作組會議。
小結(jié)
此次 Istio 的更新废睦,總的來說Beta 驚喜伺绽,Release 平淡
。給人的感覺就是想等下一個版本再升級,讓我們一起期待下一個版本吧奈应。
延伸閱讀
- Istio 1.12 Alpha 驚喜澜掩,Release 平淡
- Istio 1.10 全新官網(wǎng)&開放前行
- Istio 1.9 改善生產(chǎn)環(huán)境體驗
- Istio 1.8 穩(wěn)健前進(jìn)
- Istio 1.7 任性的小子
- Istio 1.6 簡化以提升用戶體驗
- Istio 1.5 擁抱單體,簡化架構(gòu)