下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
使用兩年之后,我為什么卸載了Istio?在生產(chǎn)中使用了Istio近兩年之后,我們要和它說(shuō)再見(jiàn)了。服務(wù)網(wǎng)絡(luò)大戰(zhàn)正在肆虐?,F(xiàn)在我把票投給了Linkerd。服務(wù)網(wǎng)格提供了微服務(wù)之間的流量監(jiān)控,包括服務(wù)通信的映射和在它們之間生成的HTTP狀態(tài)碼。通過(guò)添加服務(wù)網(wǎng)格,你可以在服務(wù)間添加mTLS,或者換句話說(shuō),可以在服務(wù)間添加加密的HTTP通信。在我看來(lái),這兩個(gè)工具幾乎對(duì)所有人都很有用。許多服務(wù)網(wǎng)格都提供了諸如流量分割、重試、超時(shí)等高級(jí)功能。我很少相信這些功能是有用的,或者我認(rèn)為這不應(yīng)該是由Sidecar代理來(lái)處理的功能。它們經(jīng)常被錯(cuò)誤地用來(lái)嘗試解決一個(gè)本該以其他方式解決的問(wèn)題。但另一方面服務(wù)網(wǎng)格很難。如果你要使用任何一種服務(wù)網(wǎng)格,都需要一個(gè)艱苦的過(guò)程才能學(xué)到一些知識(shí):服務(wù)網(wǎng)格目前只能可靠地支持HTTP通信。我有使用Istio和Linkerd的經(jīng)驗(yàn),它們都聲稱(chēng)支持許多協(xié)議。我發(fā)現(xiàn)這很不可靠。Istio對(duì)某些數(shù)據(jù)庫(kù)協(xié)議的支持在不同版本之間存在中斷。Linkerd中斷了ampq通信。在這兩個(gè)平臺(tái)上使用HTTPS經(jīng)常會(huì)拋出一些奇怪的錯(cuò)誤。我的印象是,編寫(xiě)一個(gè)透明的網(wǎng)絡(luò)代理是極其困難的。在這一點(diǎn)上,我只相信一個(gè)帶有HTTP通信的服務(wù)網(wǎng)格,無(wú)論如何,這是我想要的,因?yàn)槟鞘荎ubernetes服務(wù)之間通信的流量。在Sidecar代理運(yùn)行之前,應(yīng)用程序容器的網(wǎng)絡(luò)調(diào)用都將失敗。這一點(diǎn)尤為糟糕,這也是我認(rèn)為服務(wù)網(wǎng)格尚不適用于所有人的主要原因。應(yīng)用程序容器可能會(huì)在Sidecar代理之前啟動(dòng),在這種情況下,它將無(wú)法完成需要由Sidecar代理來(lái)配置處理的網(wǎng)絡(luò)請(qǐng)求??梢越栌肒ubernetes的故事來(lái)制作Sidecar(你可以標(biāo)記Pod中某個(gè)容器中為自旋向上的Sidecar)。它原本計(jì)劃在1.20版本中發(fā)布,但現(xiàn)在為了支持盡可能多的用例而推遲了。無(wú)論如何,總有一些技巧可以解決這個(gè)問(wèn)題,但這意味著成功實(shí)現(xiàn)一個(gè)服務(wù)網(wǎng)格對(duì)開(kāi)發(fā)人員來(lái)說(shuō)不再是透明的,因?yàn)樗麄冃枰薷囊恍┐a或部署。初始化容器和CronJob不能使用服務(wù)網(wǎng)格。為什么呢?服務(wù)網(wǎng)格代理容器永遠(yuǎn)不會(huì)退出。如果它永不退出,那么初始化容器和CronJob就永遠(yuǎn)不會(huì)真正“完成”。對(duì)容器來(lái)說(shuō),你的應(yīng)用程序容器將永遠(yuǎn)不會(huì)啟動(dòng),對(duì)CronJob來(lái)說(shuō),你的CronJob將超時(shí)并被標(biāo)記為失敗??赡苡幸恍┙鉀Q方法,但我從未發(fā)現(xiàn)有任何建議是非常實(shí)用的。搜索公眾號(hào)后端架構(gòu)師回復(fù)關(guān)鍵字“面試”,獲取一份驚喜禮包。我已經(jīng)成功地在生產(chǎn)和預(yù)發(fā)集群中使用了服務(wù)網(wǎng)格,但有兩個(gè)限制條件,只讓Sidecar代理監(jiān)控HTTP通信;將mTLS設(shè)置為可選(如果某個(gè)Pod不在網(wǎng)格上,它仍然可以與網(wǎng)格上的另一個(gè)Pod通信)。我不在審查集群上使用服務(wù)網(wǎng)格。把審查應(yīng)用程序放到服務(wù)網(wǎng)格中有太多的問(wèn)題需要解決了。1為什么我卸載了Istio?簡(jiǎn)而言之,因?yàn)椴僮鲝?fù)雜。學(xué)習(xí)Istio的時(shí)間與我第一次學(xué)習(xí)Kubernetes的時(shí)候差不多長(zhǎng)。通過(guò)配Helm來(lái)部署Istio需要花費(fèi)數(shù)周的時(shí)間(相比之下,我?guī)缀蹩偰茉谝惶熘畠?nèi)完成一個(gè)新Helm的配置)。Istio重度依賴(lài)CRD。我盡量避免使用CRD,因?yàn)樗鼈儠?huì)造成供應(yīng)商鎖定。他們的CRD,比如,必不可少的Gateway、VirtualService、DestinationRule都要花費(fèi)一些時(shí)間來(lái)理解,而且我閱讀它們文檔的次數(shù)比我能接受的要多得多。Istio用起來(lái)很?chē)樔?。我?jīng)歷過(guò)一個(gè)巨大的單點(diǎn)故障,當(dāng)開(kāi)發(fā)人員誤命名了包含TLS密鑰的Kubernetes密鑰時(shí),每個(gè)網(wǎng)關(guān)都中斷了,整個(gè)集群都垮了。這是一個(gè)bug,如果Istio無(wú)法找到密鑰,它將無(wú)法配置并停止所有服務(wù)。這調(diào)試起來(lái)非常困難。日志中沒(méi)有任何內(nèi)容可以指出到底出了什么問(wèn)題。Istio很少在其他方面完全失效,通常與它將配置傳遞給Envoy代理的方式有關(guān)。他們稱(chēng)之為“碎玻璃配置”(“BreakGlassConfiguration”)。最后,也是最重要的一點(diǎn)是,Istio不推薦使用Helm部署,而是推薦使用他們的istioctl命令行實(shí)用程序……然而,他們?cè)诟叩陌姹局兄匦乱肓薍elm的部署。我不喜歡用一堆不同的方法在集群上部署40多個(gè)支持工具,所以當(dāng)他們棄用Helm時(shí),我非常失望,我使用的其他工具都支持Helm。當(dāng)我發(fā)現(xiàn)這只是暫時(shí)的時(shí)候,我更加沮喪。這意味著我必須離開(kāi)后再回來(lái)升級(jí)到最新的Istio版本。2當(dāng)初我為什么會(huì)選擇Istio?當(dāng)Kubernetes剛出現(xiàn)時(shí),它還有其他3個(gè)主要競(jìng)爭(zhēng)對(duì)手:Mesos、Nomad和Swarm。很快,Kubernetes就贏得這場(chǎng)戰(zhàn)爭(zhēng)。我從未遇到過(guò)使用Mesos的人,這可能是因?yàn)樗鼪](méi)有得到大公司的支持,盡管我聽(tīng)說(shuō)過(guò)Mesos對(duì)容器編排有著巨大的影響。我見(jiàn)過(guò)的唯一使用Swarm的人,是因?yàn)镾warm比Kubernetes“更簡(jiǎn)單”才使用的。我知道這不會(huì)長(zhǎng)久的。它的“簡(jiǎn)單”實(shí)際上是缺乏功能。如果你只使用Kubernetes特性中的一小部分,Kubernetes也很簡(jiǎn)單。Nomad現(xiàn)在還很活躍,如果你需要將流程直接編排到服務(wù)器上,那么這就是你的選擇。如果你只需要容器編排,我強(qiáng)烈推薦你使用Kubernetes。不管怎樣,當(dāng)Istio問(wèn)世時(shí),情況看起來(lái)非常熟悉。唯一的競(jìng)爭(zhēng)對(duì)手是Linkerd(我想在我的心目中這是一個(gè)Swarm類(lèi)型的競(jìng)爭(zhēng)對(duì)手),而Istio就像Kubernetes一樣,是谷歌的“孩子”。所以我選擇了Istio。然后,服務(wù)網(wǎng)絡(luò)大戰(zhàn)開(kāi)始了。首先出現(xiàn)的是AWS的AppMesh,然后是Traefik的Maesh,再然后是Azure的OpenServiceMesh(這可能是對(duì)Istio不加入CNCF爭(zhēng)議的一種諷刺),以及Nginx的服務(wù)網(wǎng)格。還有一些其他的,大多數(shù)都是使用Envoy代理來(lái)創(chuàng)建他們的服務(wù)網(wǎng)格,如Kuma和ConsulConnect。這看來(lái)根本沒(méi)有明顯的贏家。3現(xiàn)在該用什么?在比較了所有的服務(wù)網(wǎng)格之后,我最終選擇了Linkerd,也就是最初的那個(gè)。其他的要么想偷偷進(jìn)入供應(yīng)商鎖定,要么只是沒(méi)有按照我想要的方式工作(比如Maesh,它向節(jié)點(diǎn)添加是代理而不是Pod)。我喜歡Linkerd的原因在于:它支持使用Helm進(jìn)行部署(實(shí)際上,我在所有部署中都使用了Helm的修改版本,并且我使用了一些自定義的代碼來(lái)避免外部手動(dòng)配置)。它相當(dāng)簡(jiǎn)單。你只需要一個(gè)CRD,Helm圖也很易學(xué)。它們的儀表盤(pán)很順滑。Istio使用Grafana/Promethus和Kiali。Linkerd也支持Grafana/Prometheus,但它還有一個(gè)專(zhuān)用的定制儀表盤(pán),很易于使用。它們用Rust(v2)編寫(xiě)了自己的代理。起初我對(duì)此感到很困惑,因?yàn)镋nvoy如此受歡迎,但后來(lái)我意識(shí)到Linkerd可以快速發(fā)展。Envoy現(xiàn)在是一個(gè)龐然大物,必須對(duì)許多供應(yīng)商保持中立,但是Linkerd可以對(duì)自己的代理做任何想做的事情,從而使開(kāi)發(fā)速度更快。而且,它是用Rust寫(xiě)的!很酷,對(duì)吧?它們加入了CNCF。而Isito沒(méi)有…Linkerd第一步做對(duì)了。Istio試圖嘗試一系列不同的部署,你必須管理它們,但現(xiàn)在它們已經(jīng)轉(zhuǎn)移到單一部署上了。Linkerd是第一個(gè)這樣做的。它確實(shí)有其他部署,但都不是“核心”的。它們?cè)黾犹匦院?,你只需要關(guān)注核心部署就可以讓你的服務(wù)網(wǎng)格工作了。Linkerd有什么不足之處嗎?其實(shí)只有一件小事。我想這更像是一種營(yíng)銷(xiāo)手段。他們聲稱(chēng)這是一個(gè)服務(wù)網(wǎng)絡(luò),你可以在5分鐘內(nèi)安裝并使用它,一切都能準(zhǔn)備好。但是,正如上文所述,服務(wù)網(wǎng)格并不是簡(jiǎn)單地準(zhǔn)備就緒就行了。Linkerd也存在每個(gè)服務(wù)網(wǎng)格都有的問(wèn)題:缺少原生Sidecar和不可靠的非HTTP協(xié)議處理。4小結(jié)也許有一天,你使用哪個(gè)服務(wù)網(wǎng)格只是一個(gè)小問(wèn)題,就像很多人甚至不知道他們?cè)贙ubernetes上使用的是什么覆蓋網(wǎng)絡(luò)一樣。每個(gè)服務(wù)網(wǎng)格都在采用SMI(服務(wù)網(wǎng)格接口),因此從長(zhǎng)遠(yuǎn)來(lái)看,我認(rèn)為服務(wù)網(wǎng)格將會(huì)成為Kubernetes中的原
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年專(zhuān)屬采石場(chǎng)股權(quán)交易協(xié)議范本
- 2023-2024學(xué)年重慶市云陽(yáng)高級(jí)中學(xué)高三下學(xué)期摸底統(tǒng)一考試數(shù)學(xué)試題
- 2023-2024學(xué)年浙江省寧波重點(diǎn)中學(xué)高三第二學(xué)期綜合模擬數(shù)學(xué)試題
- 2024年工廠商業(yè)秘密保密協(xié)議
- 2024年銷(xiāo)售專(zhuān)員協(xié)議條款范本
- 2024年衛(wèi)生間隔板安裝服務(wù)協(xié)議范例
- 2024年期固定期限勞動(dòng)協(xié)議范例
- 2024年度搬運(yùn)作業(yè)承攬協(xié)議條款
- 2024年適用公司買(mǎi)賣(mài)協(xié)議詳盡模板
- 2024年度大理石供應(yīng)協(xié)議模板
- 江蘇省南京市建鄴區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期中考試物理試題(無(wú)答案)
- 中小學(xué)師德師風(fēng)建設(shè)各項(xiàng)制度匯編
- 廣東省珠海市子期中學(xué)、梅華中學(xué) 2024-2025 學(xué)年上學(xué)期期中考試七年級(jí)數(shù)學(xué)試題(無(wú)答案)
- 2024秋期河南開(kāi)放大學(xué)本科《消費(fèi)者權(quán)益保護(hù)法》一平臺(tái)無(wú)紙化考試(形考任務(wù)1至3+我要考試)試題及答案
- 公務(wù)員2024年國(guó)考申論真題(地市級(jí))及參考答案
- 2024年河南省信陽(yáng)市招才引智綠色通道招聘市直事業(yè)單位人員183人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 民用無(wú)人機(jī)操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點(diǎn)題及答案
- 廣西南寧市第十四中學(xué)2023-2024學(xué)年七年級(jí)上學(xué)期期中地理試題
- 2024-2030年中國(guó)應(yīng)急產(chǎn)業(yè)市場(chǎng)發(fā)展分析及競(jìng)爭(zhēng)形勢(shì)與投資機(jī)會(huì)研究報(bào)告
- 2024年中國(guó)電動(dòng)鼻毛器市場(chǎng)調(diào)查研究報(bào)告
- 2025年高考語(yǔ)文復(fù)習(xí)備考復(fù)習(xí)策略講座
評(píng)論
0/150
提交評(píng)論