您好,登錄后才能下訂單哦!
今天詳細介紹一下Linkerd的架構。
控制平面
Linkerd控制平面是一組在專用Kubernetes命名空間中運行的服務(在Linked默認情況下)。這些服務完成各種事情——聚合遙測數據、提供面向用戶的API、向數據平面代理提供控制數據等。它們共同驅動著數據平面的行為。
控制平面由四個部分組成:
架構
數據平面
Linkerd數據平面由輕量級代理組成,它們作為sidecar容器與服務代碼的每個實例一起部署。為了將服務“添加”到Linkerd服務網格,你必須重新部署該服務的pod來讓每個pod中都包含數據平面代理。(linkerd inject 命令完成此操作,以及完成通過代理透明地從每個實例傳遞流量所需的配置工作)你可以使用單個CLI命令將服務添加到數據平面。
這些代理透明地攔截與每個pod之間的通信,并添加諸如檢測和加密(TLS)之類的功能,以及根據相關策略允許和拒絕請求。
這些代理不是手動配置的。相反,它們的行為是由控制平面驅動的。
代理
用Rust編寫的超輕透明代理,它安裝在服務的每個pod中,并成為數據平面的一部分。它接收pod的所有傳入流量,并通過配置initcontainer的iptables,攔截傳出流量和正確轉發流量。因為它是一個sidecar并攔截服務的所有傳入和傳出流量,所以不需要更改代碼,甚至可以將其添加到正在運行的服務中。
代理的功能包括:
HTTP,HTTP / 2和任意TCP協議的透明、零配置代理
用于HTTP和TCP流量的自動Prometheus度量導出
透明、零配置得WebSocket代理
自動、延遲感知、第7層負載均衡
針對非HTTP流量的自動第4層負載均衡
自動TLS(實驗)
按需診斷分類API
CLI
Linkerd CLI在你的機器上本地運行,并用來和控制和數據平面交互。它可用于查看統計信息,實時調試生產問題以及安裝/升級控制和數據平面。
Dashboard
Linkerd Dashboard提供了一個高級視圖,能夠實時顯示你的服務發生情況。它可用于查看“黃金”指標(如成功率、請求/秒和延遲)、可視化服務依賴性,并了解特定服務路由的運行狀況。
Top Line指標
Grafana
作為控制平面的一個組件,Grafana為你的服務提供開箱即用的可操作Dashboard。你可以查看高級指標并深入了解細節,即使對于pod也是如此。
開箱即用的Dashboard包括:
Top Line指標
部署細節
Pod細節
Linkerd 健康診斷
Prometheus
Prometheus是一種云原生監控解決方案,用于收集和存儲所有Linkerd指標。它是作為控制平面的一部分安裝的,并提供CLI、Dashboard和Grafana使用的數據。
代理在4191端口上公開一個/metrics端點,讓Prometheus獲取數據,并且每隔10秒就會獲取一次
指標集合
更多技術文章,掃描下方二維碼
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。