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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Service Mesh 开源实现之 Istio 架构概览

發(fā)布時(shí)間:2024/8/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Service Mesh 开源实现之 Istio 架构概览 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來源:無敵碼農(nóng)
作者:無敵碼農(nóng)

今天的文章將從更宏觀的概念架構(gòu)入手,來全面介紹Istio這一最著名的服務(wù)網(wǎng)格開源解決方案,以求從整體上將Istio實(shí)現(xiàn)服務(wù)網(wǎng)格的核心原理闡述清楚!

Istio中的關(guān)鍵概念

要學(xué)習(xí)Istio需要先明確以下幾個(gè)關(guān)鍵術(shù)語。

1.容器/容器鏡像

進(jìn)入到云原生時(shí)代的服務(wù)網(wǎng)格架構(gòu),應(yīng)用的發(fā)布、部署都是圍繞Kubernetes為代表的容器基礎(chǔ)設(shè)施展開的。這就需要對(duì)容器容器鏡像的概念有清晰的理解。

實(shí)際上,容器的普及要?dú)w功于Docker技術(shù)的流行,而從本質(zhì)上說容器就是運(yùn)行在操作系統(tǒng)中的,受資源隔離限制的一組進(jìn)程,也稱為“容器運(yùn)行時(shí)”。它可以將用戶打包的代碼及其所賴的關(guān)系完整的還原出來。通過容器化運(yùn)行的應(yīng)用程序,可以更快、更可靠地運(yùn)行,而不受具體計(jì)算環(huán)境的影響。

容器鏡像,是容器化的重要介質(zhì)和載體。從形式上來說,它就是一個(gè)輕量級(jí)的、獨(dú)立的、可執(zhí)行的軟件包文件,包括了運(yùn)行應(yīng)用程序所需要的一切:代碼、工具、系統(tǒng)庫及各種設(shè)置。

容器技術(shù)的出現(xiàn),徹底顛覆了應(yīng)用構(gòu)建、發(fā)布及運(yùn)行的方式,目前已經(jīng)成為服務(wù)端應(yīng)用發(fā)布的事實(shí)標(biāo)準(zhǔn)。后續(xù)要聊到的Istio服務(wù)網(wǎng)格技術(shù),無論是“網(wǎng)格基礎(chǔ)組件”還是“應(yīng)用程序”,都是以容器的方式運(yùn)行在Kubernetes容器平臺(tái)之上的。

2.微服務(wù)

微服務(wù)是一種架構(gòu)風(fēng)格,它將一個(gè)龐大的單體服務(wù)拆分為一組松散耦合的微服務(wù)集合,該微服務(wù)集合提供了與單個(gè)單體應(yīng)用相同的功能。但微服務(wù)可以獨(dú)立于其他服務(wù)進(jìn)行獨(dú)立的開發(fā)和部署。此外,微服務(wù)是圍繞業(yè)務(wù)能力組織的,可以由較小的團(tuán)隊(duì)擁有,因此,在開發(fā)/部署上能夠?qū)崿F(xiàn)更小、更獨(dú)立的迭代。

目前主要的微服務(wù)架構(gòu)解決方案,以Spring Cloud為代表的微服務(wù)架構(gòu)體系是主流;但隨著云原生技術(shù)概念的流行,以Istio為代表的Service Mesh(服務(wù)網(wǎng)格)微服務(wù)架構(gòu)方案也在逐步得到推廣。

3.控制平面

在以Spring Cloud為代表的傳統(tǒng)微服務(wù)架構(gòu)中,應(yīng)用本身與服務(wù)治理邏輯是耦合在一起的。而在Service Mesh(服務(wù)網(wǎng)格)方案中,服務(wù)治理規(guī)則的管理服務(wù)治理行為應(yīng)用本身都是互相獨(dú)立,這就使得應(yīng)用可以專注于業(yè)務(wù),而服務(wù)治理邏輯則完全可以抽離出來由運(yùn)維團(tuán)隊(duì)進(jìn)行統(tǒng)一的管理。

像這種專門負(fù)責(zé)服務(wù)治理規(guī)則管理的邏輯或組件,在Service Mesh(服務(wù)網(wǎng)格)架構(gòu)中就叫做“控制平面“。“控制平面”主要由API和工具組成,用于管理服務(wù)治理行為(數(shù)據(jù)平面)。服務(wù)網(wǎng)格運(yùn)維人員可以操控控制平面,以配置服務(wù)網(wǎng)格中的數(shù)據(jù)平面行為。例如,將流量配置作用于控制平面——翻譯配置并將其推送到數(shù)據(jù)平面。

4.數(shù)據(jù)平面

在Service Mesh(服務(wù)網(wǎng)格)中,數(shù)據(jù)平面就是具體實(shí)現(xiàn)服務(wù)治理行為的代理。在Istio中數(shù)據(jù)平面由負(fù)責(zé)路由、負(fù)載均衡、服務(wù)發(fā)現(xiàn)、健康檢查和授權(quán)/認(rèn)證的Envoy代理組成。這些代理在每個(gè)服務(wù)實(shí)例的旁邊運(yùn)行(在k8s中,與應(yīng)用容器運(yùn)行在同一個(gè)Pod),攔截所有傳入和傳出的用戶流量,并在這一過程中根據(jù)控制平面下發(fā)的服務(wù)治理規(guī)則進(jìn)行流量管理。

5.Envoy

在Istio中,數(shù)據(jù)平面就是由Envoy代理實(shí)現(xiàn)的。它是一個(gè)現(xiàn)代的、高性能邊緣的小型L7代理。Envoy是為大型現(xiàn)代微服務(wù)架構(gòu)設(shè)計(jì)的,可以與Nginx和HAProxy等負(fù)載均衡器相匹配。

6.代理

在網(wǎng)絡(luò)中,代理是一個(gè)中間服務(wù)器,位于客戶端和服務(wù)端之間,可以管理請(qǐng)求和響應(yīng)。在Istio服務(wù)網(wǎng)格情況下,代理(Envoy)運(yùn)行在每個(gè)應(yīng)用實(shí)例的前面。當(dāng)向應(yīng)用程序發(fā)起請(qǐng)求時(shí),代理(Envoy)會(huì)攔截該請(qǐng)求,并將其轉(zhuǎn)發(fā)給應(yīng)用程序?qū)嵗M瑯拥?#xff0c;當(dāng)應(yīng)用程序?qū)嵗噲D發(fā)出請(qǐng)求時(shí),代理(Envoy)也會(huì)攔截出站請(qǐng)求并將其發(fā)送到目的地。

由于代理(Envoy)攔截了所有請(qǐng)求,所以它可以修改請(qǐng)求,從而實(shí)現(xiàn)流量路由、故障注入、授權(quán)等功能

7.L7代理

L7(第7層)代理在OSI模型的應(yīng)用層工作。在這一層,代理可以處理每個(gè)請(qǐng)求的內(nèi)容。例如Http就是一個(gè)流行的L7協(xié)議。因?yàn)榭梢栽L問請(qǐng)求的數(shù)據(jù),所以L7代理(Envoy)就可以根據(jù)請(qǐng)求的內(nèi)容(URL、Cookies等)做出負(fù)載均衡的決定。

Istio的架構(gòu)及模塊組成

Service Mesh(服務(wù)網(wǎng)格)的架構(gòu)方式為我們提供了一種統(tǒng)一的方式來連接、保護(hù)和觀察微服務(wù)。網(wǎng)格內(nèi)的代理(如Envoy)可以捕獲網(wǎng)格內(nèi)所有的通信請(qǐng)求和指標(biāo)——每一次失敗或成功的調(diào)用、重試或超時(shí)的請(qǐng)求都可以被捕獲,并被可視化和報(bào)警。

這種將通信邏輯從業(yè)務(wù)和應(yīng)用邏輯中分離出來的架構(gòu)方式,可以使開發(fā)人員專注于業(yè)務(wù)邏輯,而服務(wù)網(wǎng)格運(yùn)維人員則專注于服務(wù)網(wǎng)格配置。

前面通過對(duì)幾個(gè)關(guān)鍵術(shù)語的解釋,以及對(duì)服務(wù)網(wǎng)格架構(gòu)好處的介紹,相信大家或多或少理解了什么是服務(wù)網(wǎng)格。接下來將重點(diǎn)介紹Istio這一開源的服務(wù)網(wǎng)格實(shí)現(xiàn)。

從宏觀上看,Istio主要支持以下功能:

1.流量管理

流量管理是Istio最核心的功能,通過配置,可以控制服務(wù)之間的流量——例如設(shè)置斷路器、超時(shí)或重試等服務(wù)治理機(jī)制,在Istio中都可以通過簡(jiǎn)單的配置改變來完成。

2.可觀察性

Istio可以通過跟蹤、監(jiān)控和記錄服務(wù)間的請(qǐng)求來更好地實(shí)現(xiàn)對(duì)服務(wù)的監(jiān)控,方便我們了解服務(wù)運(yùn)行情況,并及時(shí)發(fā)現(xiàn)和修復(fù)問題。

3.安全性

Istio可以在代理層面來管理認(rèn)證、授權(quán)和通訊的加密,而無需對(duì)應(yīng)用本身造成侵入。而這些安全配置操作只需要通過快速的配置變更即可完成。

接下來,我們看下Istio的架構(gòu)組成。如下圖所示:

如上圖所示,Istio實(shí)現(xiàn)服務(wù)網(wǎng)格,仍然遵循了將組件分離成“控制平面”和“數(shù)據(jù)平面”這一常見的分布式系統(tǒng)構(gòu)建模式。

Istio中的數(shù)據(jù)平面由Envoy代理組成,控制服務(wù)之間的通信。Envoy是一個(gè)用C++開發(fā)的高性能代理。Istio將Enovy代理作為一個(gè)sidecar容器注入到應(yīng)用容器的旁邊,然后攔截該服務(wù)的所有入站和出站流量。而這些注入應(yīng)用容器旁邊的Enovy代理組合在一起就構(gòu)成了Istio服務(wù)網(wǎng)格的數(shù)據(jù)平面。

Istiod則是Istio的控制平面組件,主要提供服務(wù)發(fā)現(xiàn)、配置和證書管理等功能。Istiod采用YAML文件格式來編寫流量控制規(guī)則,并將其轉(zhuǎn)換為Envoy的可操作配置,之后通過xDS協(xié)議將配置傳播給網(wǎng)格中的所有sidecar代理。

Istiod主要由Pilot、Citadel、Galley這三個(gè)組件組成。其中Pilot抽象了特定平臺(tái)的服務(wù)發(fā)現(xiàn)機(jī)制(如Kubernetes、Consul或VM),并將其轉(zhuǎn)換為可以被sidecar使用的標(biāo)準(zhǔn)格式。Citadel則是Istio的核心安全組件,實(shí)現(xiàn)證書授權(quán)、證書生成,實(shí)現(xiàn)數(shù)據(jù)平面中sidecar代理之間的mTLS安全通信。

而Galley則主要服務(wù)配置管理,包括驗(yàn)證配置信息的格式和內(nèi)容正確性,并將這些配置信息提供給Pilot等其他控制平面組件使用。

Istio的流量管理實(shí)現(xiàn)

流量管理是Istio服務(wù)網(wǎng)格的核心能力。通過Istio的流量管理功能,演示了在服務(wù)網(wǎng)格中實(shí)現(xiàn)灰度發(fā)布的具體方法。接下來,將從原理層面來總結(jié)下Istio實(shí)現(xiàn)流量管理的核心邏輯。

Istio流量管理示意圖如下:

如上圖所示,要在Istio服務(wù)網(wǎng)格中實(shí)現(xiàn)流量管理,需要通過VirtualService(虛擬服務(wù))DestinationRule(路由規(guī)則)資源來管理流量路由規(guī)則。

而具體的路由規(guī)則流量的執(zhí)行由Istio網(wǎng)關(guān)資源來實(shí)現(xiàn)。其中Ingress Gateway(入口網(wǎng)關(guān))Egress Gateway(出口網(wǎng)關(guān))是Istio服務(wù)網(wǎng)格組件的一部分,這兩個(gè)網(wǎng)關(guān)都運(yùn)行著一個(gè)Envoy代理實(shí)例,它們?cè)诜?wù)網(wǎng)格的邊緣作為負(fù)載均衡器運(yùn)行,入口網(wǎng)關(guān)接收入站連接,而出口網(wǎng)關(guān)則接收從集群出去的連接。

需要注意,這里理解入口網(wǎng)關(guān)和出口網(wǎng)關(guān)的概念不要狹義的理解為就是Istio服務(wù)網(wǎng)格的邊緣入口和出口。對(duì)于Istio服務(wù)網(wǎng)格來說除了外部流量的進(jìn)出可以通過VitrualService(虛擬服務(wù))關(guān)聯(lián)Gateway(網(wǎng)關(guān)資源)來實(shí)現(xiàn)流量路由外,網(wǎng)格之間也可以通過該方式來實(shí)現(xiàn)流量的路由。

所以,在使用Istio服務(wù)網(wǎng)格來實(shí)現(xiàn)微服務(wù)的流量管理時(shí),可以根據(jù)場(chǎng)景來分別創(chuàng)建針對(duì)外部流量的Gateway+VirtualService資源,以及針對(duì)具體微服務(wù)網(wǎng)格間流量的Gateway+VirtualService資源,并通過VitrualService隨時(shí)修改相應(yīng)的路由規(guī)則。

而對(duì)于Gateway網(wǎng)格資源的創(chuàng)建來說,則根據(jù)是控制入口流量還是出口流量來選擇關(guān)聯(lián)Ingress Gateway(入口網(wǎng)關(guān))還是Egress Gateway(出口網(wǎng)關(guān))。

后記

以上內(nèi)容就是對(duì)Istio服務(wù)網(wǎng)格實(shí)現(xiàn)流量管理核心邏輯的簡(jiǎn)單介紹,也是為了方便大家理解之前文章中的一些操作。雖然目前以Istio服務(wù)網(wǎng)格架構(gòu)還沒有完全替代Spring Cloud微服務(wù)體系,但服務(wù)網(wǎng)格這種將控制平面和數(shù)據(jù)平面分離的架構(gòu)思想,將是未來微服務(wù)架構(gòu)的主流。

往期推薦

阿里云投入 20 億發(fā)力操作系統(tǒng)

移動(dòng)云API大賽決賽大獎(jiǎng)花落誰家?

Redis很厲害,使用規(guī)范來啦

阿里云發(fā)布首顆云芯片倚天710

點(diǎn)分享

點(diǎn)收藏

點(diǎn)點(diǎn)贊

點(diǎn)在看

總結(jié)

以上是生活随笔為你收集整理的Service Mesh 开源实现之 Istio 架构概览的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 午夜免费观看视频 | 香蕉黄色网 | 性色福利 | 国模无码一区二区三区 | 男人的天堂在线观看av | 国产精品一二三四五 | 男人和女人日批 | 天天色综合图片 | 我看黄色一级片 | 艳妇乳肉豪妇荡乳 | 国产高清视频在线播放 | 成人精品一区二区三区电影黑人 | 在线观看一二区 | 国产精品天天av精麻传媒 | 天堂av免费在线观看 | 欧美激情精品久久久久久免费 | 亚洲一区二区三区中文字幕 | 国产又黄又大又粗视频 | 日韩午夜| 亚洲欧美在线免费 | 国产一区二区网 | 欧色丰满女同hd | 岛国av一区二区三区 | 欧美人与性动交xxⅹxx | 人人妻人人澡人人爽人人精品 | 日韩永久| 绝顶高潮videos合集 | 成人特级毛片69免费观看 | 青草精品在线 | 黑人乱码一区二区三区av | 久久久久国色av免费观看性色 | 久久久久久久久久久久久久久久久久久久 | 日韩黄色片在线观看 | 日韩欧美少妇 | 噼里啪啦免费高清看 | 亚洲av无码国产精品久久 | 四季av中文字幕 | 可以免费看的黄色网址 | av制服丝袜在线 | 亚洲一区二区三区在线 | 五月天久久婷婷 | 国产又粗又黄视频 | 四川一级毛毛片 | 色偷偷亚洲 | 久久精品噜噜噜成人88aⅴ | 大学生一级片 | 国产无码精品视频 | 欧美孕妇性xx | 在线国产毛片 | 亚色成人| 夜夜爽夜夜 | 禁漫天堂黄漫画无遮挡观看 | 日韩成人av电影 | 亚洲AV无码久久精品国产一区 | 成人毛片在线免费观看 | www亚洲天堂 | 欧美成人午夜免费视在线看片 | 久久影片 | 永久在线 | 一区二区日韩 | 91黄色在线视频 | 中文字字幕在线中文乱码电影 | 国产又爽又黄又嫩又猛又粗 | 72pao成人国产永久免费视频 | 国产h视频在线 | 国产一级免费大片 | 玖玖伊人 | 日本激情小视频 | 午夜视频在线 | 色大师av一区二区三区 | 秘密的基地 | 99国产在线播放 | 曰本丰满熟妇xxxx性 | 高清av一区二区 | 色偷偷av | 国产99久久久久 | 8090av| 国产伦精品一区二区三区视频1 | 特级西西444www大精品视频免费看 | 秋霞影院午夜 | 麻豆视频在线观看免费网站黄 | 伊人天堂网 | 日本熟妇乱子伦xxxx | 国产又黄又粗的视频 | 欧美性猛交ⅹ乱大交3 | 91av国产视频 | 少女国产免费观看 | 国产盗摄一区二区三区在线 | 亚欧在线视频 | 在线观看日韩一区二区 | 中文有码在线播放 | 丰满少妇一区 | 精品在线播放视频 | 97爱爱| 午夜精品久久久久久久无码 | 国产日韩一区二区三区在线观看 | 成年人www| 色二区 | 日韩精品免费一区二区 |