溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

kubernetes中什么是Service Mesh

發(fā)布時間:2021-12-24 16:20:42 來源:億速云 閱讀:199 作者:小新 欄目:云計算

這篇文章主要為大家展示了“kubernetes中什么是Service Mesh”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“kubernetes中什么是Service Mesh”這篇文章吧。

一:什么是Service Mesh

1.可以將Service Mesh比作是程序或者微服務(wù)間的TCP/IP,負責服務(wù)之間的網(wǎng)絡(luò)調(diào)用,限流,熔斷和監(jiān)控。對于編寫應(yīng)用程序來說一般無須關(guān)心 TCP/IP 這一層(比如通過 HTTP 協(xié)議的 RESTful 應(yīng)用),同樣使用 Service Mesh 也就無須關(guān)系服務(wù)之間的那些原來是通過應(yīng)用程序或者其他框架實現(xiàn)的事情,比如 Spring Cloud、OSS,現(xiàn)在只要交給 Service Mesh 就可以了。

2.Service Mesh有如下幾個特點:
a. 應(yīng)用程序間通信的中間層
b.輕量級的網(wǎng)絡(luò)代理
c.應(yīng)用程序無感知
d.解耦應(yīng)用程序的重試,超時,監(jiān)控,追蹤和服務(wù)發(fā)現(xiàn)

3.Service Mesh的架構(gòu)
kubernetes中什么是Service Mesh
Service mesh 作為 sidecar 運行,對應(yīng)用程序來說是透明,所有應(yīng)用程序間的流量都會通過它,所以對應(yīng)用程序流量的控制都可以在 serivce mesh 中實現(xiàn)。

二:為何使用Service Mesh

1.Service mesh 并沒有給我們帶來新功能,它是用于解決其他工具已經(jīng)解決過的問題,只不過這次是在 Cloud Native 的 kubernetes 環(huán)境下的實現(xiàn)。

2.在傳統(tǒng)的 MVC 三層 Web 應(yīng)用程序架構(gòu)下,服務(wù)之間的通訊并不復(fù)雜,在應(yīng)用程序內(nèi)部自己管理即可,但是在現(xiàn)今的復(fù)雜的大型網(wǎng)站情況下,單體應(yīng)用被分解為眾多的微服務(wù),服務(wù)之間的依賴和通訊十分復(fù)雜。

3.在 Cloud Native 架構(gòu)下,容器的使用給予了異構(gòu)應(yīng)用程序的更多可行性,kubernetes 增強的應(yīng)用的橫向擴容能力,用戶可以快速的編排出復(fù)雜環(huán)境、復(fù)雜依賴關(guān)系的應(yīng)用程序,同時開發(fā)者又無須過分關(guān)心應(yīng)用程序的監(jiān)控、擴展性、服務(wù)發(fā)現(xiàn)和分布式追蹤這些繁瑣的事情而專注于程序開發(fā),賦予開發(fā)者更多的創(chuàng)造性。

三:Service Mesh如何工作

 Linkerd 為例講解 service mesh 如何工作:

1.Linkerd 將服務(wù)請求路由到目的地址,根據(jù)其中的參數(shù)判斷是到生產(chǎn)環(huán)境還是測試環(huán)境,是路由到本地環(huán)境還是公有云環(huán)境?所有的這些路由信息可以動態(tài)配置,可以是全局配置也可以為某些服務(wù)單獨配置。

2.當 Linkerd 確認了目的地址后,將流量發(fā)送到相應(yīng)服務(wù)發(fā)現(xiàn)端點(在 kubernetes 中是 service),然后 service 會將服務(wù)轉(zhuǎn)發(fā)給后端的實例(Pod)。

3.Linkerd 根據(jù)它觀測到最近請求的延遲時間,選擇出所有應(yīng)用程序的實例中響應(yīng)最快的實例。

4.Linkerd 將請求發(fā)送給該實例,同時記錄響應(yīng)類型和延遲數(shù)據(jù)。

5.如果該實例掛了、不響應(yīng)了或者進程不工作了,Linkerd 將把請求發(fā)送到其他實例上重試。

6.如果該實例持續(xù)返回 error,Linkerd 會將該實例從負載均衡池中移除,稍后再周期性得重試。

7.如果請求的截止時間已過,Linkerd 主動失敗該請求,而不是再次嘗試添加負載。

8.Linkerd 以 metric 和分布式追蹤的形式捕獲上述行為的各個方面,這些追蹤信息將發(fā)送到集中 metric 系統(tǒng)。

四:Istio 與 Linkerd

當前的Service Mesh實現(xiàn)主要有兩大陣營,Linkerd和Istio。

<table letter-spacing:0.2px;background-color:#FFFFFF;">

FeatureIstioLinkerd
部署架構(gòu)Envoy/SidecarDaemonSets
易用性復(fù)雜簡單
支持平臺kuberenteskubernetes/mesos/Istio/local
當前版本0.3.01.3.3
是否已有生產(chǎn)部署

下圖是Istio和Linkerd架構(gòu)的不同,Istio是使用Sidecar模式,將Envoy植入到Pod中,而Linkerd則是在每臺node上都以DaemonSet的方式運行。

kubernetes中什么是Service Mesh

以上是“kubernetes中什么是Service Mesh”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI