您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用Kubernetes健康檢查,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Kubernetes健康檢查被分成 liveness和readiness probes。liveness probes是用來檢測你的應(yīng)用程序是否正在運(yùn)行。通常情況下,你的程序一崩潰,Kubernetes就會看到這個程序已經(jīng)終止,然后重啟這個程序。但是liveness probes的目的就是捕捉到當(dāng)程序還沒有終止,還沒有崩潰或者還沒陷入死鎖的情況。所以一個簡單的HTTP回應(yīng)能夠滿足。
以下是一個我使用的為Go應(yīng)用程序使用健康檢查的例子。
在配置中
上圖就是告訴Kubernetes,應(yīng)用程序正在運(yùn)行。initialDelaySeconds 告訴Kubernetes在看到pod啟動之后要延遲開啟健康檢查,并說清楚延遲幾秒。如果你的應(yīng)用程序需要一些時間來啟動,你可以用這個設(shè)置來幫助它。timeoutSeconds會告訴Kubernetes應(yīng)該為健康檢查等待多長時間。對于liveness probes,這個時間不能太長,但是萬一有欠載的情況,你就真的需要給你的應(yīng)用足夠的時間來回應(yīng)。
如果應(yīng)用程序從未啟動,或者回應(yīng)過來一個HTTP錯誤代碼,那么之后Kubernetes就會重新啟動pod。你最好不要在liveness probes中進(jìn)行太炫酷的什么動作,想都不要想,因?yàn)橐坏﹍iveness probes功能開始失效的話,這會引起你的應(yīng)用程序錯誤
Readiness Probes跟liveness probes十分相似,只有失效檢測的結(jié)果是不一樣的。Readiness Probes是用來檢查你的應(yīng)用程序是否可以為通信服務(wù)。這跟liveness有些微妙的不同。比如,你的應(yīng)用程序取決于數(shù)據(jù)庫與memcached。如果上面兩個都在良好狀態(tài),為你的應(yīng)用提供通信,然后你就可以說這兩個都是你的應(yīng)用的“readiness”。
如果你的應(yīng)用的readness probe運(yùn)行失敗,那么pod就會從組成service的端點(diǎn)被刪除。這樣的話,沒有準(zhǔn)備好的pods就不會有流量通信通過Kubernetes服務(wù)發(fā)現(xiàn)機(jī)制來發(fā)送給他們。當(dāng)遇到service的新pod啟動時;拓展events時,滾動更新等狀態(tài)的時候,這個狀態(tài)十分有幫助。Readiness probes確認(rèn)在pods開啟的時候pods沒有被發(fā)通信,還有他們處于待服務(wù)通信的時候也沒有。
Readiness probe的定義跟liveness probes的定義一樣。Readiness probes被定義為Deployment的一部分,比如像這樣:
你是不是想要檢驗(yàn)一下是否可以在你的readiness probe中連接到你的應(yīng)用程序的依賴。以我們依賴數(shù)據(jù)庫為例,我們想要檢查我們是否能夠連接到兩者。
情況看起來應(yīng)該是這樣的(下圖所示)。我檢查memcached和數(shù)據(jù)庫,如果有一個不可得,那么我就會回復(fù)一個503回應(yīng)狀態(tài)。
Liveness和Readiness probes對增加應(yīng)用程序的穩(wěn)定性很有幫助。他們幫助確認(rèn)通信是否只流通到為它準(zhǔn)備的實(shí)例上,當(dāng)應(yīng)用變得無反應(yīng)的時候,自我治愈也是一樣。他們就是我同事所說的叫做“12 Fractured Apps”的更好的解決方法。有了合適的健康檢查,你就能夠以任意順序配置你的應(yīng)用程序,不需要擔(dān)心相關(guān)性或者復(fù)雜的進(jìn)入點(diǎn)腳本。當(dāng)應(yīng)用程序準(zhǔn)備好的時候,他們會開始服務(wù)通信,所以自動調(diào)度和滾動更新運(yùn)行得十分順利。
以上是“如何使用Kubernetes健康檢查”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。