日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Istio 1.5 发布——拥抱变化,爱上单体

發(fā)布時(shí)間:2023/12/4 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Istio 1.5 发布——拥抱变化,爱上单体 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

北京時(shí)間 2020 年 3 月 6 日凌晨,我們期待已久的 Istio 1.5 發(fā)布了,發(fā)布公告見(jiàn)?https://istio.io/news/releases/1.5.x/announcing-1.5/。由 ServiceMesher 社區(qū)組織翻譯的 Istio 官方文檔同時(shí)發(fā)布,見(jiàn) https://istio.io/zh。

Istio 1.5 是一個(gè)具有重大變革的版本。長(zhǎng)久以來(lái),面對(duì)社區(qū)對(duì) Istio 的性能和易用性的詬病,Istio 團(tuán)隊(duì)終于正視自身的問(wèn)題,在當(dāng)前版本中徹底推翻了原有控制平面的架構(gòu),完成了重建。正如 Simplified Istio 文中所說(shuō):

復(fù)雜是萬(wàn)惡之源,讓我們停止焦慮,愛(ài)上單體。

Istio 1.5 回歸單體,無(wú)論架構(gòu)和使用方式都發(fā)生了巨大變化。因此筆者決定對(duì) 1.5 的變化內(nèi)容做深入解讀,以便開(kāi)發(fā)者可以更好的理解和學(xué)習(xí)新版本,為使用和升級(jí)提供參考。

架構(gòu)調(diào)整

這部分主要分析 Istio 1.5 在架構(gòu)上的調(diào)整,這也是該版本最核心的變化。主要包括重建了控制平面,將原有的多個(gè)組件整合為一個(gè)單體結(jié)構(gòu) istiod;同時(shí)廢棄了被詬病已久的 Mixer 組件。還對(duì)是否向后兼容的部分也做了說(shuō)明,如果你要從 1.4.x 版本升級(jí)到 1.5 必須知道這些變化。

重建控制平面

官方使用的是重建(Restructuring)而不是重構(gòu)(Refactoring)一詞,可見(jiàn)其變化之大。在 Istio 1.5 中,控制平面將使用新的部署模式,將原有的各個(gè)組件整合在一起。

Istiod

Istio 1.5 中會(huì)使用一個(gè)全新的部署模式:istiod。這個(gè)組件是控制平面的核心,負(fù)責(zé)處理配置、證書分發(fā)、sidecar 注入等各種功能。istiod 是新版本中最大的變化,以一個(gè)單體組件替代了原有的架構(gòu),在降低復(fù)雜度和維護(hù)難度的同時(shí),也讓易用性得到提升。需要注意的一點(diǎn)是,原有的多組件并不是被完全移除,而是在重構(gòu)后以模塊的形式整合在一起組成了 istiod。

Sidecar 注入

以前版本的 sidecar 注入是由 istio-sidecar-injector webhook 實(shí)現(xiàn)的。在新版本中 webhook 保留了下來(lái),但整合進(jìn)了 istiod 中,注入邏輯保持不變。

Galley

  • 配置驗(yàn)證 - 功能保留,并入 istiod。

  • MCP Server - 改為默認(rèn)關(guān)閉。對(duì)于大多數(shù)用戶來(lái)說(shuō)只是一個(gè)實(shí)現(xiàn)細(xì)節(jié)。如果確定依賴它,需要部署 istio-galley 并啟動(dòng)其進(jìn)程。

  • 實(shí)驗(yàn)特性(例如配置分析)- 也需要部署 istio-galley。

Citadel

以前 Citadel 的 2 個(gè)功能是生成證書以及 SDS 開(kāi)啟時(shí)以 gRPC 方式向 nodeagent 提供密鑰。1.5 版本中密鑰不再寫入每個(gè)命名空間,只通過(guò) gRPC 提供。這一功能也被并入 istiod。

SDS 節(jié)點(diǎn)代理

nodeagent 被移除。

Sidecar

以前,sidecar 能以兩種方式訪問(wèn)證書:以文件掛載的密鑰;SDS。新版本中所有密鑰都存在本地運(yùn)行的 SDS 服務(wù)器上。對(duì)絕大部分用戶來(lái)說(shuō)只需要從 istiod 中獲取。對(duì)于自定義 CA 的用戶,仍然可以掛載文件密鑰,不過(guò)仍然由本地 SDS 服務(wù)器提供。這意味著證書輪詢將不再需要 Envoy 重啟。

CNI

CNI 沒(méi)有改變,仍在 istio-cni 中。

Pilot

istio-pilot 的獨(dú)立組件和進(jìn)程被移除,由包含了它全部功能的 istiod 取而代之。為了向后兼容,仍有少許對(duì) Pilot 的引用。

廢棄 Mixer

在 Istio 1.5 中 Mixer 被廢棄了。默認(rèn)情況下 mixer 完全關(guān)閉。遙測(cè)的 V2 版本在新版本中是默認(rèn)特性且不需要 mixer。如果你對(duì) Mixer 的特殊功能有依賴,比如進(jìn)程外適配器,需要重新開(kāi)啟 Mixer。Mixer 還會(huì)持續(xù)修復(fù) bug 和安全漏洞直到 Istio 1.7 版本。mixer 的許多功能在 Mixer Deprecation 文檔中都描述了替代方案,包括基于 Wasm sandbox API 的 in-proxy 擴(kuò)展.

新版本中 HTTP 遙測(cè)默認(rèn)基于 in-proxy Stats filter。這節(jié)省了 50% 的 CPU 使用量。1.5 中的遙測(cè) V2 和老版本主要有以下幾點(diǎn)不同:

  • 流量的源和目標(biāo)如果沒(méi)有注入 sidecar,部分遙測(cè)信息將無(wú)法收集。

  • Egress 遙測(cè)不再支持。

  • Histogram bucketization 和 V1 版本有很大不同。

  • TCP 遙測(cè)只支持 mTLS。

  • 需要更多的 Prometheus 實(shí)例來(lái)伺服所有的代理。

如果開(kāi)發(fā)者之前使用的是 Istio 默認(rèn)的 HTTP 遙測(cè),遷移到新版本是沒(méi)問(wèn)題的。可以直接通過(guò) istioctl upgrade 自動(dòng)升級(jí)到 V2。

最被社區(qū)開(kāi)發(fā)者唾棄的 Mixer 終于被廢棄,可以說(shuō)它是影響老版本性能的罪魁禍?zhǔn)住,F(xiàn)在皆大歡喜,甚至呼聲最高的 Wasm 方案也提上日程。當(dāng)然我們也能看出 Istio 團(tuán)隊(duì)為了保證老版本的升級(jí)依賴并沒(méi)有一刀切的干掉 Mixer,持續(xù)修復(fù) bug 到 1.7 版本的深層含義是它會(huì)在 1.7 的時(shí)候被徹底移除?

控制平面安全

老版本中,當(dāng)設(shè)置了 values.global.controlPlaneSecurityEnabled=true 時(shí),代理將安全地與控制平面交互,這是 1.4 版本的默認(rèn)配置。每個(gè)控制平面組件都有一個(gè)帶有 Citadel 證書的 sidecar,代理通過(guò)端口 15011 連接到 Pilot。

新版本中,不再推薦或以默認(rèn)方式將代理連接到控制平面。作為替代,使用由 Kubernetes 或 Istiod 簽發(fā)的 DNS 證書。代理通過(guò)端口 15012 連接到 Pilot。

功能更新

Istio 1.5 不僅僅做了減法,也做了很多加法,包括添加了新的功能,性能優(yōu)化和 Bug 修復(fù)。這一部分列舉了新版本中在流量管理、安全、遙測(cè)等多個(gè)功能方面的改進(jìn)。

流量管理

  • 提升了 ServiceEntry 的性能。

  • 修復(fù)了 readiness 探針不一致問(wèn)題。

  • 通過(guò)定向局部更新的方式改善了配置更新的性能。

  • 添加了為 host 設(shè)置所在負(fù)載均衡器設(shè)置的選項(xiàng)。

  • 修復(fù)了 Pod 崩潰會(huì)觸發(fā)過(guò)度配置推送的問(wèn)題。

  • 修復(fù)了應(yīng)用調(diào)用自己的問(wèn)題。

  • 添加了使用 Istio CNI 時(shí)對(duì) iptables 的探測(cè)。

  • 添加了 consecutive_5xx 和 gateway_errors 作為離群值探測(cè)選項(xiàng)。

  • 提升了 EnvoyFilter 匹配性能優(yōu)化。

  • 添加了對(duì) HTTP_PROXY 協(xié)議的支持。

  • 改進(jìn)了 iptables 設(shè)置,默認(rèn)使用 iptables-restore。

  • 默認(rèn)開(kāi)啟自動(dòng)協(xié)議探測(cè)。

安全

  • 添加 Beta 認(rèn)證 API。新 API 分為 PeerAuthentication 和 RequestAuthenticaiton,面向工作負(fù)載。

  • 添加認(rèn)證策略,支持 deny 操作和語(yǔ)義排除。

  • Beta 版本默認(rèn)開(kāi)啟自動(dòng) mTLS。

  • 穩(wěn)定版添加 SDS。

  • Node agent 和 Pilot agent 合并,移除了 Pod 安全策略的需要,提升了安全性。

  • 合并 Citadel 證書發(fā)放功能到 Pilot。

  • 支持 Kubernetes first-party-jwt 作為集群中 CSR 認(rèn)證的備用 token。

  • 通過(guò) Istio Agent 向 Prometheus 提供密鑰和證書。

  • 支持 Citadel 提供證書給控制平面。

遙測(cè)

  • 為 v2 版本的遙測(cè)添加 TCP 協(xié)議支持。

  • 在指標(biāo)和日志中支持添加 gRPC 響應(yīng)狀態(tài)碼。

  • 支持 Istio Canonical Service

  • 改進(jìn) v2 遙測(cè)流程的穩(wěn)定性。

  • 為 v2 遙測(cè)的可配置性提供 alpha 級(jí)別的支持。

  • 支持在 Envoy 節(jié)點(diǎn)的元數(shù)據(jù)中添加 AWS 平臺(tái)的元數(shù)據(jù)。

  • 更新了 Mixer 的 Stackdriver 適配器,以支持可配置的刷新間隔來(lái)跟蹤數(shù)據(jù)。

  • 支持對(duì) Jaeger 插件的 headless 收集服務(wù)。

  • 修復(fù)了 kubernetesenv 適配器以提供對(duì)名字中有.的 Pod 的支持。

  • 改進(jìn)了 Fluentd 適配器,在導(dǎo)出的時(shí)間戳中提供毫秒級(jí)輸出。

Operator

  • 用 IstioOperator API 替代了 IstioControlPlane API。

  • 添加了 istioctl operator init 和 istioctl operator remove 命令。

  • 添加緩存改善了調(diào)和速度。

性能和擴(kuò)展性

  • 為網(wǎng)關(guān)生成集群時(shí)忽略沒(méi)用的服務(wù)。

  • 為 headless 服務(wù)略過(guò)調(diào)用 updateEDS。

  • 在 ingress 網(wǎng)關(guān)中默認(rèn)關(guān)閉 SNI-DNAT 。

  • 錯(cuò)誤覆蓋聲明。

  • 容量已知時(shí),基于容量創(chuàng)建切片。

測(cè)試和發(fā)布

  • 為 istioctl 創(chuàng)建了Docker鏡像。

istioctl

  • 添加 mTLS 分析器。

  • 添加 JwtAnalyzer。

  • 添加 ServiceAssociationAnalyzer。

  • 添加 SercretAnalyaer。

  • 添加 sidecar ImageAnalyzer。

  • 添加 PortNameAnalyzer。

  • 添加 Policy DeprecatedAnalyzer。

  • 為 RequestAuthentication 添加了更多的驗(yàn)證規(guī)則。

  • istioctl analyze 從實(shí)驗(yàn)特性轉(zhuǎn)為正式特性。

  • 添加新標(biāo)記 -A|--all-namespaces 給 istioctl analyze,來(lái)分析整個(gè)集群。

  • 添加通過(guò) stdin 到 istioctl analyze 的內(nèi)容分析。

  • 添加 istioctl analyze -L 顯示所有可用分析列表。

  • 添加從 istioctl analyze 抑制信息的能力。

  • 為 istioctl analyze 添加結(jié)構(gòu)化格式選項(xiàng)。

  • 為 istioctl analyze 的輸出添加對(duì)應(yīng)的文檔鏈接。

  • 通過(guò) Istio API 在分析器中提供標(biāo)注方法。

  • istioctl analyze 可以基于目錄加載文件。

  • istioctl analyze 嘗試將消息與它們的源文件名關(guān)聯(lián)。

  • istioctl analyze 可打印命名空間。

  • istioctl analyze 默認(rèn)分析集群內(nèi)資源。

  • 修復(fù)分析器抑制集群級(jí)別資源消息的 bug。

  • 為 istioctl manifest 添加多文件支持。

  • 替換 IstioControlPlane API 為 IstioOperator API。

  • 為 istioctl dashboard 添加選擇器.

  • 為 istioctl manifest --set 標(biāo)記添加切片和列表支持。

總結(jié)

Istio 1.5 是全面擁抱變化的一個(gè)版本。重建整個(gè)控制平面,打造了全新的部署模式 istiod;摒棄了拖累系統(tǒng)性能的 Mixer;保證兼容性也不忘持續(xù)優(yōu)化和引入新的功能。在徹底拋棄歷史包袱的同時(shí),Istio團(tuán)隊(duì)也用他們的勇氣踐行了敏捷開(kāi)發(fā)的真諦。隨著穩(wěn)定的季度發(fā)布,相信未來(lái)的 Istio 會(huì)越加成熟。讓我們拭目以待。

?推薦閱讀?

Service Mesh 通用數(shù)據(jù)平面 API(UDPA)最新進(jìn)展深度介紹

Istio Handbook 重啟寫作邀請(qǐng)

使用了 Service Mesh 后我還需要 API 網(wǎng)關(guān)嗎?

Service Mesh 終端用戶調(diào)查報(bào)告

螞蟻金服 Service Mesh 技術(shù)風(fēng)險(xiǎn)思考和實(shí)踐

回歸單體 —— Istio的自我救贖?

總結(jié)

以上是生活随笔為你收集整理的Istio 1.5 发布——拥抱变化,爱上单体的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。