溫馨提示×

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

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

Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

發(fā)布時(shí)間:2020-05-18 08:33:21 來(lái)源:網(wǎng)絡(luò) 閱讀:996 作者:行云創(chuàng)新 欄目:云計(jì)算

今天詳細(xì)介紹一下Linkerd的架構(gòu)。

控制平面

Linkerd控制平面是一組在專(zhuān)用Kubernetes命名空間中運(yùn)行的服務(wù)(在Linked默認(rèn)情況下)。這些服務(wù)完成各種事情——聚合遙測(cè)數(shù)據(jù)、提供面向用戶的API、向數(shù)據(jù)平面代理提供控制數(shù)據(jù)等。它們共同驅(qū)動(dòng)著數(shù)據(jù)平面的行為。

控制平面由四個(gè)部分組成:

  • 控制器——控制器部署由多個(gè)容器(public-api,proxy-api,destination,tap)組成,這些容器提供了控制平面的大部分功能。
  • Web——Web部署提供Linkerd Dashboard。
  • Prometheus—— Linkerd公開(kāi)的所有指標(biāo)都通過(guò)Prometheus進(jìn)行刪除并存儲(chǔ)。這是Prometheus的一個(gè)實(shí)例,它已被配置為專(zhuān)門(mén)用于處理Linkerd生成的數(shù)據(jù)。
  • Grafana—— Linkerd配備了許多開(kāi)箱即用的Dashboard。Grafana組件用于呈現(xiàn)和顯示這些Dashboard。你可以通過(guò)LinkerdDashboard中的鏈接訪問(wèn)這些Dashboard。

Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

架構(gòu)

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

Linkerd數(shù)據(jù)平面由輕量級(jí)代理組成,它們作為sidecar容器與服務(wù)代碼的每個(gè)實(shí)例一起部署。為了將服務(wù)“添加”到Linkerd服務(wù)網(wǎng)格,你必須重新部署該服務(wù)的pod來(lái)讓每個(gè)pod中都包含數(shù)據(jù)平面代理。(linkerd inject 命令完成此操作,以及完成通過(guò)代理透明地從每個(gè)實(shí)例傳遞流量所需的配置工作)你可以使用單個(gè)CLI命令將服務(wù)添加到數(shù)據(jù)平面。

這些代理透明地?cái)r截與每個(gè)pod之間的通信,并添加諸如檢測(cè)和加密(TLS)之類(lèi)的功能,以及根據(jù)相關(guān)策略允許和拒絕請(qǐng)求。

這些代理不是手動(dòng)配置的。相反,它們的行為是由控制平面驅(qū)動(dòng)的。

代理

用Rust編寫(xiě)的超輕透明代理,它安裝在服務(wù)的每個(gè)pod中,并成為數(shù)據(jù)平面的一部分。它接收pod的所有傳入流量,并通過(guò)配置initcontainer的iptables,攔截傳出流量和正確轉(zhuǎn)發(fā)流量。因?yàn)樗且粋€(gè)sidecar并攔截服務(wù)的所有傳入和傳出流量,所以不需要更改代碼,甚至可以將其添加到正在運(yùn)行的服務(wù)中。

代理的功能包括:

  • HTTP,HTTP / 2和任意TCP協(xié)議的透明、零配置代理

  • 用于HTTP和TCP流量的自動(dòng)Prometheus度量導(dǎo)出

  • 透明、零配置得WebSocket代理

  • 自動(dòng)、延遲感知、第7層負(fù)載均衡

  • 針對(duì)非HTTP流量的自動(dòng)第4層負(fù)載均衡

  • 自動(dòng)TLS(實(shí)驗(yàn))

  • 按需診斷分類(lèi)API

  • 代理支持通過(guò)DNS和目標(biāo)gRPC API進(jìn)行服務(wù)發(fā)現(xiàn)

CLI

Linkerd CLI在你的機(jī)器上本地運(yùn)行,并用來(lái)和控制和數(shù)據(jù)平面交互。它可用于查看統(tǒng)計(jì)信息,實(shí)時(shí)調(diào)試生產(chǎn)問(wèn)題以及安裝/升級(jí)控制和數(shù)據(jù)平面。

Dashboard

Linkerd Dashboard提供了一個(gè)高級(jí)視圖,能夠?qū)崟r(shí)顯示你的服務(wù)發(fā)生情況。它可用于查看“黃金”指標(biāo)(如成功率、請(qǐng)求/秒和延遲)、可視化服務(wù)依賴(lài)性,并了解特定服務(wù)路由的運(yùn)行狀況。

Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

Top Line指標(biāo)

Grafana

作為控制平面的一個(gè)組件,Grafana為你的服務(wù)提供開(kāi)箱即用的可操作Dashboard。你可以查看高級(jí)指標(biāo)并深入了解細(xì)節(jié),即使對(duì)于pod也是如此。

開(kāi)箱即用的Dashboard包括:

Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

Top Line指標(biāo)

Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

部署細(xì)節(jié)
Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

Pod細(xì)節(jié)

Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

Linkerd 健康診斷

Prometheus

Prometheus是一種云原生監(jiān)控解決方案,用于收集和存儲(chǔ)所有Linkerd指標(biāo)。它是作為控制平面的一部分安裝的,并提供CLI、Dashboard和Grafana使用的數(shù)據(jù)。

代理在4191端口上公開(kāi)一個(gè)/metrics端點(diǎn),讓Prometheus獲取數(shù)據(jù),并且每隔10秒就會(huì)獲取一次

Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

指標(biāo)集合

更多技術(shù)文章,掃描下方二維碼
Service Mesh服務(wù)網(wǎng)格之Linkerd架構(gòu)|前沿

向AI問(wèn)一下細(xì)節(jié)

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

AI