溫馨提示×

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

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

如何實(shí)現(xiàn)Kubernetes可觀察性監(jiān)測(cè)

發(fā)布時(shí)間:2021-11-23 22:40:48 來(lái)源:億速云 閱讀:92 作者:柒染 欄目:云計(jì)算

如何實(shí)現(xiàn)Kubernetes可觀察性監(jiān)測(cè),針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

我們將向您展示如何完成基本的Kubernetes可觀察性任務(wù):從運(yùn)行在Kubernetes集群上的應(yīng)用程序獲得黃金指標(biāo)或黃金信號(hào)。我們不需要修改任何代碼,也不需要進(jìn)行任何配置,只要安裝Linkerd(一個(gè)開(kāi)源的超輕服務(wù)網(wǎng)格)就可以做到這一點(diǎn)。我們將介紹什么是服務(wù)網(wǎng)格,術(shù)語(yǔ)可觀察性是什么意思,以及這兩者在Kubernetes上下文中是如何關(guān)聯(lián)的。

用服務(wù)網(wǎng)格監(jiān)控Kubernetes應(yīng)用程序

如果你們剛剛適應(yīng)了Kubernetes。恭喜你!但是現(xiàn)在你需要干什么?任何Kubernetes使用者者的第一個(gè)可觀察性任務(wù)之一是監(jiān)視,您需要知道什么時(shí)候出現(xiàn)了問(wèn)題,以便您可以快速地修復(fù)它們。

Kubernetes可觀察性是一個(gè)非常廣泛的話題,網(wǎng)上有很多關(guān)于可觀察性與監(jiān)控、分布式跟蹤與日志記錄等之間的細(xì)微差別的討論。在本文中,我們將重點(diǎn)討論一個(gè)基本問(wèn)題:在不更改任何代碼的情況下,從運(yùn)行在集群上的應(yīng)用程序獲得黃金指標(biāo)或黃金信號(hào)。我們將安裝一個(gè)Linkerd,一個(gè)開(kāi)源的超輕量級(jí)服務(wù)網(wǎng)格。與大多數(shù)服務(wù)網(wǎng)格不同,Linkerd只需要在集群上安裝幾分鐘,不需要配置。

雖然簡(jiǎn)單,但Linkerd包含了一個(gè)非常強(qiáng)大的度量管道。一旦安裝完畢,它將通過(guò)觀察集群上運(yùn)行的所有組件之間的HTTP(或gRPC)和TCP通信,自動(dòng)檢測(cè)并報(bào)告成功率、流量級(jí)別和響應(yīng)延遲。

linkd可以自動(dòng)為服務(wù)報(bào)告度量標(biāo)準(zhǔn)通常被引用為服務(wù)的黃金度量標(biāo)準(zhǔn)。

 

什么是黃金度量標(biāo)準(zhǔn)?為什么它們很重要?

如果您已經(jīng)知道黃金參數(shù)是什么,請(qǐng)?zhí)^(guò)這一節(jié)!

黃金指標(biāo)或黃金信號(hào)是您需要了解應(yīng)用程序是否按預(yù)期啟動(dòng)和運(yùn)行的首要指標(biāo)。這些度量為您提供了有關(guān)服務(wù)運(yùn)行狀況的粗略信號(hào),而不需要知道服務(wù)的實(shí)際功能。

Cindy Sridharan在她的關(guān)于監(jiān)控和可觀察性的博文中寫道:當(dāng)不直接驅(qū)動(dòng)報(bào)警時(shí),監(jiān)控?cái)?shù)據(jù)應(yīng)該被優(yōu)化,以提供系統(tǒng)整體健康狀況的鳥瞰圖。

谷歌SRE書定義的黃金指標(biāo)為:

  • 延遲——一種衡量服務(wù)速度快慢的方法。它是服務(wù)請(qǐng)求所花費(fèi)的時(shí)間,通常以百分比來(lái)度量。第99百分位延遲為5ms意味著99%的請(qǐng)求在5ms或更短的時(shí)間內(nèi)得到服務(wù)。
  • 流量——讓你知道某項(xiàng)服務(wù)有多忙或需求有多復(fù)雜。通常用每秒對(duì)服務(wù)的請(qǐng)求數(shù)來(lái)衡量。
  • 錯(cuò)誤-請(qǐng)求失敗的數(shù)量。通常與總流量相結(jié)合來(lái)生成一個(gè)成功率——成功請(qǐng)求與遇到錯(cuò)誤請(qǐng)求的比率。
  • 飽和-衡量你的系統(tǒng)的負(fù)載

通過(guò)觀察服務(wù)的流量,Linkerd可以簡(jiǎn)單地提供延遲、流量和錯(cuò)誤的測(cè)量——樂(lè)觀地說(shuō),Linkerd以成功率的形式提供了這些數(shù)據(jù)。(第四個(gè)指標(biāo),飽和度,在監(jiān)控討論中經(jīng)常被忽略,因?yàn)樗枰私夥?wù)的內(nèi)部情況,通常跟蹤其他指標(biāo),如流量和延遲。)

有時(shí)這些指標(biāo)也被稱為服務(wù)的RED指標(biāo):

  • Rate——您的服務(wù)每秒正在處理的請(qǐng)求數(shù)。
  • Errors—每秒失敗的請(qǐng)求數(shù)。
  • Duration——每個(gè)請(qǐng)求所花費(fèi)時(shí)間的分布

不管你怎么稱呼它們,Linkerd的美妙之處在于,它不僅記錄這些指標(biāo)的流量,而且匯總和報(bào)告它們,這樣我們就可以輕松地使用它們。(我們將在下面看到。)這使我們能夠監(jiān)控我們的應(yīng)用程序。一旦我們能夠監(jiān)控我們的應(yīng)用程序,我們就可以在出錯(cuò)時(shí)收到報(bào)警;研究其長(zhǎng)期性能;并對(duì)其可靠性和性能進(jìn)行測(cè)試和改進(jìn)。

 

黃金指標(biāo):最簡(jiǎn)單的方法

 

安裝:訪問(wèn)Kubernetes集群并安裝Linkerd CLI

我們假設(shè)您有一個(gè)正常運(yùn)行的Kubernetes集群和一個(gè)指向它的kubectl命令。在本節(jié)中,我們將帶您瀏覽linkd入門指南的縮寫版本,以便在這個(gè)集群上安裝Linkerd和一個(gè)演示應(yīng)用程序(我們將獲得最佳指標(biāo)的應(yīng)用程序)。

首先,安裝Linkerd命令行(或者,直接從Linkerd release頁(yè)面下載。):

curl -sL https://run.linkerd.io/install | sh
export PATH=$PATH:$HOME/.linkerd2/bin
 

驗(yàn)證Kubernetes集群是否能夠處理linkd;安裝Linkerd;并驗(yàn)證安裝:

linkerd check --pre
linkerd install | kubectl apply -f -
linkerd check
 

最后,安裝Emojivoto演示應(yīng)用程序,這是我們希望獲得黃金指標(biāo)的應(yīng)用程序。如果仔細(xì)觀察下面的命令,您將看到我們實(shí)際上是在向應(yīng)用程序添加linkerd(我們稱之為注入),然后將應(yīng)用程序部署到Kubernetes。(如果您想知道這是如何工作的,請(qǐng)查看我們的文檔https://linkerd.io/2/tasks/adding-your-service/)。

curl -sL https://run.linkerd.io/emojivoto.yml \
| linkerd inject - \
| kubectl apply -f -
 

嗯,就是這樣。這就是您需要的所有工具,您的應(yīng)用程序,并能夠訪問(wèn)您的黃金指標(biāo)!現(xiàn)在讓我們來(lái)看看他們。

 

在Grafana查看度量

想要看到所有這些有用的圖表和儀表板嗎?沒(méi)有問(wèn)題!運(yùn)行linkd dashboard -show grafana并打開(kāi)命令輸出的鏈接。您將看到Linkerd的頂層儀表盤,其中包含它所收集的指標(biāo)的總體和每個(gè)名稱空間的細(xì)分。向下滾動(dòng)到我們應(yīng)用程序的命名空間(ns/emojivoto),觀察以下圖表:

如何實(shí)現(xiàn)Kubernetes可觀察性監(jiān)測(cè)

 

通過(guò)linkd CLI查看指標(biāo)

我們還可以使用linkd stat命令查看應(yīng)用程序的指標(biāo)。

所有這些數(shù)據(jù)也可以在Linkerd's dashboard中找到,你可以通過(guò)運(yùn)行Linkerd dashboard來(lái)訪問(wèn):

如何實(shí)現(xiàn)Kubernetes可觀察性監(jiān)測(cè)

如何實(shí)現(xiàn)Kubernetes可觀察性監(jiān)測(cè)  

看看Grafana圖表(或linkd儀表盤),你可以立即看到voting服務(wù)做得不是很好-它的成功率相當(dāng)?shù)?向我們的應(yīng)用程序中添加黃金指標(biāo)可以立即讓我們看到應(yīng)用程序中可能出現(xiàn)的問(wèn)題。

真的這么簡(jiǎn)單嗎?答案是肯定的!我們所需要做的就是安裝Linkerd并將其注入到我們的應(yīng)用程序中。在底層,當(dāng)linkd被添加到一個(gè)服務(wù)時(shí),它會(huì)自動(dòng)檢測(cè)與服務(wù)的pod之間的任何HTTP和gRPC調(diào)用。由于它能夠解析這些協(xié)議,它可以記錄這些調(diào)用的響應(yīng)類和延遲,并將它們聚合在一起,在這種情況下,將它們合并到一個(gè)名為Prometheus的時(shí)間序列數(shù)據(jù)庫(kù)的小型內(nèi)部實(shí)例中。當(dāng)您通過(guò)Linkerd的儀表板和CLI查看黃金指標(biāo)時(shí),Linkerd會(huì)從這個(gè)內(nèi)部的Prometheus實(shí)例中獲取它們,在不修改應(yīng)用程序代碼的情況下為您提供所有這些指標(biāo)。

 

Linkerd還能做什么?

我們已經(jīng)看到了如何使用Linkerd來(lái)獲得黃金指標(biāo),這是獲得系統(tǒng)可觀察性的第一步,也就是說(shuō),獲得復(fù)雜應(yīng)用程序中正在發(fā)生的事情的高級(jí)視圖。但指標(biāo)只是個(gè)開(kāi)始。當(dāng)您繼續(xù)您的監(jiān)視和可觀察性旅程時(shí),您一定會(huì)遇到另外兩個(gè)常用的工具:日志和分布式鏈路跟蹤。

分布式跟蹤涉及到檢測(cè)應(yīng)用程序,以便測(cè)量請(qǐng)求在服務(wù)中花費(fèi)的時(shí)間長(zhǎng)度。當(dāng)我們的應(yīng)用程序使用許多相互通信的微服務(wù)時(shí),跟蹤是一個(gè)很好的工具,可以用來(lái)調(diào)試緩慢的請(qǐng)求,并找出哪個(gè)服務(wù)是瓶頸。Linkerd可以幫助分布式跟蹤,盡管一個(gè)服務(wù)網(wǎng)格在分布式跟蹤方面做的不多。

類似于分布式跟蹤,Linkerd也提供了一個(gè)強(qiáng)大的動(dòng)態(tài)請(qǐng)求跟蹤工具tap。tap命令類似于用于微服務(wù)的tcpdump:它允許您查看發(fā)送到或來(lái)自特定服務(wù)的實(shí)時(shí)請(qǐng)求(示例)。Tap是在生產(chǎn)中調(diào)試Kubernetes服務(wù)的強(qiáng)大工具。

最后,應(yīng)用程序日志當(dāng)然是開(kāi)發(fā)人員在懷疑某個(gè)特定進(jìn)程不正常時(shí)首先要做的事情之一。當(dāng)運(yùn)行一個(gè)服務(wù)網(wǎng)格時(shí),有時(shí)候查看網(wǎng)格內(nèi)部發(fā)生了什么是很有用的。雖然Linkerd不能為你提供應(yīng)用程序日志,但Linkerd logs命令提供了一種簡(jiǎn)單的方法,至少可以查看Linkerd內(nèi)部發(fā)生了什么。

關(guān)于如何實(shí)現(xiàn)Kubernetes可觀察性監(jiān)測(cè)問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向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