6大服務(wù)網(wǎng)格工具比較

2021-01-28    分類: 網(wǎng)站建設(shè)

服務(wù)網(wǎng)格(Service mesh)已經(jīng)不是一個(gè)新鮮概念,但它實(shí)現(xiàn)了連接運(yùn)行在Kubernetes作為容器化平臺(tái)之上的微服務(wù),這使得服務(wù)網(wǎng)格的想法更加流行。如果沒(méi)有服務(wù)網(wǎng)格,每個(gè)微服務(wù)都需要配置以接收(或發(fā)送)連接到其他需要與之通信的微服務(wù),但服務(wù)網(wǎng)格完全改變了這一狀況。

與此前需要手動(dòng)配置以及投入大量的時(shí)間精力來(lái)維護(hù)微服務(wù)之間的連接所不同的是,開(kāi)發(fā)人員現(xiàn)在可以創(chuàng)建一個(gè)網(wǎng)格,使得微服務(wù)彼此通信可靠、可控以及安全。Kubernetes和服務(wù)網(wǎng)格是相互作用的,主要是因?yàn)槭褂梅?wù)網(wǎng)格可以在不增加工作量的情況下,實(shí)現(xiàn)更復(fù)雜的容器化架構(gòu)。

因此,有很多方式可以在Kubernetes頂層建立一個(gè)服務(wù)網(wǎng)格。在本文中,我們將比較一些你可以用于建立服務(wù)網(wǎng)格的工具,你可以分別了解到它們的優(yōu)劣勢(shì)進(jìn)而選出最適合自己的服務(wù)網(wǎng)格工具。

6大服務(wù)網(wǎng)格工具比較


與AWS環(huán)境好適配:AWS App Mesh

官網(wǎng):https://aws.amazon.com/app-mesh/

由于現(xiàn)在許多基于Kubernetes的應(yīng)用程序和微服務(wù)都運(yùn)行在Amazon Web Services環(huán)境中,所以很難不談到AWS App Mesh。顧名思義,AWS App Mesh是亞馬遜自己的服務(wù)網(wǎng)格,用于為Amazon services創(chuàng)建服務(wù)網(wǎng)格層。

作為亞馬遜的產(chǎn)品,AWS App Mesh利用結(jié)合了Envoy的專有技術(shù)作為其服務(wù)代理。AWS App Mesh通過(guò)創(chuàng)建虛擬服務(wù)在相同的命名空間中連接服務(wù)。 在你的AWS環(huán)境中每個(gè)微服務(wù)都可以找到虛擬服務(wù)并使用它來(lái)與其他微服務(wù)通信。

AWS App Mesh與其他服務(wù)(例如EKS、Fargate和EC2)的無(wú)縫集成是其最強(qiáng)的優(yōu)勢(shì),但在使用App Mesh的過(guò)程中存在一些限制。首先,你不能將App Mesh遷移到外部或者在多云設(shè)置中使用這一服務(wù)。

App Mesh還借助CloudWatch和AWS X-Ray來(lái)管理服務(wù)網(wǎng)格,這意味著你可以在不離開(kāi)主儀表板的情況下完全控制該層。諸如支持mTLS和高級(jí)負(fù)載均衡的特性在App Mesh中也有,但是它不支持身份驗(yàn)證規(guī)則。

最流行的服務(wù)網(wǎng)格工具:Istio

官網(wǎng):https://istio.io/latest/zh/

Istio可能是最流行的Kubernetes服務(wù)網(wǎng)格工具,它最初由Lyft開(kāi)發(fā),但后來(lái)變成Lyft、Google和IBM聯(lián)合開(kāi)發(fā)??紤]到Kubernetes背后的公司是谷歌,那么Istio被廣泛用于許多部署類型也并不奇怪了。

與App Mesh類似,Istio也將Envoy用作其服務(wù)代理,但它并沒(méi)有限制你把Envoy作為唯一的ingress controller。Istio的獨(dú)特之處在于它提供了巨大的靈活性。你可以將Istio用于其他的容器化平臺(tái),但其與Kubernetes的無(wú)縫銜接使其發(fā)揮的作用更大。

例如,Istio支持mesh擴(kuò)展和多云網(wǎng)格,這兩個(gè)特性在App Mesh和其他服務(wù)網(wǎng)格工具里都是沒(méi)有的。Istio還可以處理流量訪問(wèn)控制以及負(fù)載均衡,就像它是為了執(zhí)行這些任務(wù)而構(gòu)建的一樣。它甚至支持故障注入和延遲注入。

使用Istio的唯一缺點(diǎn)是你可能會(huì)對(duì)它提供的功能感到不知所措。如果你有足夠的資源使用Istio處理服務(wù)網(wǎng)格層,這個(gè)工具有可能通過(guò)其功能簡(jiǎn)化最復(fù)雜的微服務(wù)架構(gòu)。

獨(dú)立的服務(wù)網(wǎng)格工具:Linkerd

官網(wǎng):https://linkerd.io/

當(dāng)Linkerd發(fā)布2.x版本時(shí),它已經(jīng)是一個(gè)十分流行的服務(wù)網(wǎng)格工具了。新版本受到了Kubernetes社區(qū)的歡迎,截止到2020年4月中旬,其2.7.1穩(wěn)定版已經(jīng)出爐。它完全是作為一個(gè)獨(dú)立的服務(wù)網(wǎng)格工具來(lái)構(gòu)建的,所以它并不依賴Envoy等第三方工具來(lái)管理,它甚至還包含了linkerd-proxy作為服務(wù)代理。

最近的升級(jí)還包括dashboard的改進(jìn)和針對(duì)金絲雀部署的流量拆分功能的可視化。這使其成為實(shí)時(shí)監(jiān)控和編排金絲雀和藍(lán)綠部署的好工具。

在保持獨(dú)立的同時(shí),Linkerd還與Ingress controller保持高度兼容性。實(shí)際上,Linkerd能夠與你使用的任意Ingress controller一起工作,使它在這方面最為靈活。一個(gè)簡(jiǎn)單的linkerd inject命令就可以讓服務(wù)網(wǎng)格與你的應(yīng)用程序集成。

Linkerd2 也是高度優(yōu)化的,安裝僅需60秒。如果你正在尋找可以帶來(lái)好性能的服務(wù)網(wǎng)格工具,那么Linkerd是你可以考慮嘗試的。作為一個(gè)非侵入式的服務(wù)網(wǎng)格工具,Linkerd在部署之后并不需要進(jìn)行大量的優(yōu)化。開(kāi)箱即用的配置足以支持復(fù)雜的微服務(wù)架構(gòu),并且能夠防止重大工具。Linkerd通過(guò)mutual TLS(mTLS)加密來(lái)增強(qiáng)應(yīng)用程序的安全性。

Linkerd也是一個(gè)專門(mén)為Kubernetes開(kāi)發(fā)的工具。它可能不支持多云和多集群網(wǎng)格創(chuàng)建,但這絲毫不會(huì)減弱其作為Kubernetes實(shí)例的服務(wù)網(wǎng)格層的能力。除此之外,它也可以與OpenCensus配合使用,從而使跟蹤和管理變得非常容易。

最年輕的服務(wù)網(wǎng)格工具:Kuma

官網(wǎng):https://kuma.io/

Kuma將Envoy作為服務(wù)代理并且支持任意ingress controller。這與Consul Connect十分類似(該工具我們稍后會(huì)介紹),但Kuma也有自己令人耳目一新的功能。而且這些新意可能是因?yàn)镵uma是這個(gè)列表中最新的工具。

不要被Kuma年輕的年齡所欺騙了,它不僅僅已經(jīng)生產(chǎn)就緒,而且還具備了你所期望的服務(wù)網(wǎng)格工具的功能。它支持所有與OpenTracing兼容的所有后端并且允許你在需要時(shí)使用外部CA證書(shū)。不過(guò),這一工具也存在不完善的地方——有一些功能是缺失的。

目前,在Kuma中沒(méi)有辦法進(jìn)行基于路徑或基于請(qǐng)求頭的流量分割。它也不支持諸如流量訪問(wèn)控制和指標(biāo)等功能。這些功能也許會(huì)在后續(xù)版本中引入,但現(xiàn)在你必須得手動(dòng)制作代理模板來(lái)彌補(bǔ)這些功能的缺失。

但是,Kuma作為一個(gè)服務(wù)網(wǎng)格工具還是很有前途的,盡管目前它只是0.4.0版本,但其開(kāi)發(fā)者十分關(guān)注社區(qū)的意見(jiàn)并且十分樂(lè)意滿足用戶的要求,從這個(gè)維度上看,這個(gè)工具無(wú)疑是極具競(jìng)爭(zhēng)力的。

最適用于Consul環(huán)境的服務(wù)網(wǎng)格:Consul Connect

官網(wǎng):https://www.consul.io/

由HashiCorp推出的Consul Connect可以與Envoy及其他各種服務(wù)代理一起工作,它還可以與任何ingress controller一起工作,這使其成為最容易集成到現(xiàn)有Kubernetes集群中的工具之一。

在任意Consul環(huán)境中Consul Connect都可以無(wú)縫銜接,但是它也只能在Consul環(huán)境中工作。雖然該服務(wù)網(wǎng)格工具提供了許多方便的功能,但它是為了能與其他HashiCorp產(chǎn)品使用而設(shè)計(jì)的。不過(guò),這些工具的應(yīng)用十分廣泛。

從TCP到gRPC的一切都支持,此外這一工具還能與Kubernetes、VM甚至Nomads一起工具。網(wǎng)格擴(kuò)展也是完全支持的,所以你可以擁有一個(gè)跨多個(gè)云服務(wù)和集群的環(huán)境,并且仍然具有一個(gè)支持微服務(wù)的功能強(qiáng)大的服務(wù)網(wǎng)格層。

Consul Connect需要改進(jìn)的一個(gè)方面是監(jiān)控。然而,你也可以整合其他監(jiān)控工具,以便獲得日志和每個(gè)路由的指標(biāo)。你甚至可以集成諸如Prometheus和Grafana等工具來(lái)可視化你的監(jiān)控?cái)?shù)據(jù)。然后你只需要從你的服務(wù)代理中提取數(shù)據(jù)即可。

Envoy Proxy

這些服務(wù)網(wǎng)狀工具基本設(shè)計(jì)為Envoy作為服務(wù)代理。與其他邊緣代理工具相比,Envoy確實(shí)具有一些優(yōu)勢(shì),其中高級(jí)負(fù)載均衡是最突出的優(yōu)勢(shì)。

自動(dòng)重試、區(qū)域本地負(fù)載均衡、request shadowing等功能可以讓你配置流量負(fù)載均衡以獲得大性能。另一方面,高可觀察性使得Envoy成為維護(hù)支持能力強(qiáng)大架構(gòu)的網(wǎng)絡(luò)的好解決方案。

當(dāng)然,這些工具有一個(gè)主要目標(biāo):創(chuàng)建一個(gè)云架構(gòu),在這個(gè)架構(gòu)中,微服務(wù)可以以可靠和安全的方式彼此通信。好消息是,無(wú)論你使用哪種工具,你都能實(shí)現(xiàn)這個(gè)目標(biāo)。

分享題目:6大服務(wù)網(wǎng)格工具比較
網(wǎng)頁(yè)網(wǎng)址:http://muchs.cn/news30/97830.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、微信小程序、全網(wǎng)營(yíng)銷推廣、響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司