摘要:健康檢查被分成和。告訴在看到啟動(dòng)之后要延遲開(kāi)啟健康檢查,并說(shuō)清楚延遲幾秒。會(huì)告訴應(yīng)該為健康檢查等待多長(zhǎng)時(shí)間。
這篇文章我們來(lái)聊Kubernetes的健康檢查,以及不同健康檢查是如何影響你的應(yīng)用程序的。
Liveness ProbesKubernetes健康檢查被分成 liveness和readiness probes。liveness probes是用來(lái)檢測(cè)你的應(yīng)用程序是否正在運(yùn)行。通常情況下,你的程序一崩潰,Kubernetes就會(huì)看到這個(gè)程序已經(jīng)終止,然后重啟這個(gè)程序。但是liveness probes的目的就是捕捉到當(dāng)程序還沒(méi)有終止,還沒(méi)有崩潰或者還沒(méi)陷入死鎖的情況。所以一個(gè)簡(jiǎn)單的HTTP回應(yīng)能夠滿足。
以下是一個(gè)我使用的為Go應(yīng)用程序使用健康檢查的例子。
在配置中
上圖就是告訴Kubernetes,應(yīng)用程序正在運(yùn)行。initialDelaySeconds 告訴Kubernetes在看到pod啟動(dòng)之后要延遲開(kāi)啟健康檢查,并說(shuō)清楚延遲幾秒。如果你的應(yīng)用程序需要一些時(shí)間來(lái)啟動(dòng),你可以用這個(gè)設(shè)置來(lái)幫助它。timeoutSeconds會(huì)告訴Kubernetes應(yīng)該為健康檢查等待多長(zhǎng)時(shí)間。對(duì)于liveness probes,這個(gè)時(shí)間不能太長(zhǎng),但是萬(wàn)一有欠載的情況,你就真的需要給你的應(yīng)用足夠的時(shí)間來(lái)回應(yīng)。
如果應(yīng)用程序從未啟動(dòng),或者回應(yīng)過(guò)來(lái)一個(gè)HTTP錯(cuò)誤代碼,那么之后Kubernetes就會(huì)重新啟動(dòng)pod。你最好不要在liveness probes中進(jìn)行太炫酷的什么動(dòng)作,想都不要想,因?yàn)橐坏﹍iveness probes功能開(kāi)始失效的話,這會(huì)引起你的應(yīng)用程序錯(cuò)誤。
Readiness ProbesReadiness Probes跟liveness probes十分相似,只有失效檢測(cè)的結(jié)果是不一樣的。Readiness Probes是用來(lái)檢查你的應(yīng)用程序是否可以為通信服務(wù)。這跟liveness有些微妙的不同。比如,你的應(yīng)用程序取決于數(shù)據(jù)庫(kù)與memcached。如果上面兩個(gè)都在良好狀態(tài),為你的應(yīng)用提供通信,然后你就可以說(shuō)這兩個(gè)都是你的應(yīng)用的“readiness”。
如果你的應(yīng)用的readness probe運(yùn)行失敗,那么pod就會(huì)從組成service的端點(diǎn)被刪除。這樣的話,沒(méi)有準(zhǔn)備好的pods就不會(huì)有流量通信通過(guò)Kubernetes服務(wù)發(fā)現(xiàn)機(jī)制來(lái)發(fā)送給他們。當(dāng)遇到service的新pod啟動(dòng)時(shí);拓展events時(shí),滾動(dòng)更新等狀態(tài)的時(shí)候,這個(gè)狀態(tài)十分有幫助。Readiness probes確認(rèn)在pods開(kāi)啟的時(shí)候pods沒(méi)有被發(fā)通信,還有他們處于待服務(wù)通信的時(shí)候也沒(méi)有。
Readiness probe的定義跟liveness probes的定義一樣。Readiness probes被定義為Deployment的一部分,比如像這樣:
你是不是想要檢驗(yàn)一下是否可以在你的readiness probe中連接到你的應(yīng)用程序的依賴。以我們依賴數(shù)據(jù)庫(kù)為例,我們想要檢查我們是否能夠連接到兩者。
情況看起來(lái)應(yīng)該是這樣的(下圖所示)。我檢查memcached和數(shù)據(jù)庫(kù),如果有一個(gè)不可得,那么我就會(huì)回復(fù)一個(gè)503回應(yīng)狀態(tài)。
更穩(wěn)定的應(yīng)用程序Liveness和Readiness probes對(duì)增加應(yīng)用程序的穩(wěn)定性很有幫助。他們幫助確認(rèn)通信是否只流通到為它準(zhǔn)備的實(shí)例上,當(dāng)應(yīng)用變得無(wú)反應(yīng)的時(shí)候,自我治愈也是一樣。他們就是我同事所說(shuō)的叫做“12 Fractured Apps”的更好的解決方法。有了合適的健康檢查,你就能夠以任意順序配置你的應(yīng)用程序,不需要擔(dān)心相關(guān)性或者復(fù)雜的進(jìn)入點(diǎn)腳本。當(dāng)應(yīng)用程序準(zhǔn)備好的時(shí)候,他們會(huì)開(kāi)始服務(wù)通信,所以自動(dòng)調(diào)度和滾動(dòng)更新運(yùn)行得十分順利。
原文鏈接
如果需要轉(zhuǎn)載,請(qǐng)聯(lián)系我們哦,尊重知識(shí)產(chǎn)權(quán)人人有責(zé);)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32471.html
摘要:目前正在運(yùn)行的應(yīng)用程序。內(nèi)置非配置負(fù)載均衡器如何設(shè)置運(yùn)行的集群在這里你有幾個(gè)選項(xiàng)。它跟其它的谷歌云組件也都整合得很好,比如負(fù)載均衡器和磁盤(pán)。它會(huì)告訴負(fù)載均衡器,流量可以被重新傳到特定的。元信息和谷歌云會(huì)以正確的方式展現(xiàn)出來(lái)。 Kubernetes實(shí)踐案例分享|在這次的 RisingStack 案例分享中,我們可以在 Kubernetes Tutorial 中學(xué)習(xí)到如何從 PaaS 供應(yīng)...
摘要:在本文中,我們將討論,一種本地健康檢查應(yīng)用程序的方法。標(biāo)準(zhǔn)的健康檢查工具,可以輕松查詢健康協(xié)議。選擇二進(jìn)制版本并將其下載到中在你的中指定容器的。服務(wù)器健康檢查的代碼實(shí)現(xiàn),主要部分如下完整代碼,請(qǐng)查看倉(cāng)庫(kù)。 前言 GRPC正在成為云原生微服務(wù)之間通信的通用語(yǔ)言。如果您今天要將gRPC應(yīng)用程序部署到Kubernetes,您可能想知道配置運(yùn)行狀況檢查的最佳方法。在本文中,我們將討論grpc-...
摘要:在本文中,我們將討論,一種本地健康檢查應(yīng)用程序的方法。標(biāo)準(zhǔn)的健康檢查工具,可以輕松查詢健康協(xié)議。選擇二進(jìn)制版本并將其下載到中在你的中指定容器的。服務(wù)器健康檢查的代碼實(shí)現(xiàn),主要部分如下完整代碼,請(qǐng)查看倉(cāng)庫(kù)。 前言 GRPC正在成為云原生微服務(wù)之間通信的通用語(yǔ)言。如果您今天要將gRPC應(yīng)用程序部署到Kubernetes,您可能想知道配置運(yùn)行狀況檢查的最佳方法。在本文中,我們將討論grpc-...
摘要:在本文中,我們將討論,一種本地健康檢查應(yīng)用程序的方法。標(biāo)準(zhǔn)的健康檢查工具,可以輕松查詢健康協(xié)議。選擇二進(jìn)制版本并將其下載到中在你的中指定容器的。服務(wù)器健康檢查的代碼實(shí)現(xiàn),主要部分如下完整代碼,請(qǐng)查看倉(cāng)庫(kù)。 前言 GRPC正在成為云原生微服務(wù)之間通信的通用語(yǔ)言。如果您今天要將gRPC應(yīng)用程序部署到Kubernetes,您可能想知道配置運(yùn)行狀況檢查的最佳方法。在本文中,我們將討論grpc-...
摘要:健康監(jiān)控檢查,可以說(shuō)是集群中最重要的一部分了。我們?cè)谶@里沒(méi)有使用推薦的方式,我們自己將其與內(nèi)部的系統(tǒng)做了結(jié)合,通過(guò)來(lái)對(duì)整個(gè)集群進(jìn)行監(jiān)控報(bào)警自動(dòng)化操作。 在公司內(nèi)部,基于kubernetes實(shí)現(xiàn)了簡(jiǎn)單的docker應(yīng)用集群系統(tǒng),拿出來(lái)和大家分享下,在這個(gè)系統(tǒng)中,實(shí)現(xiàn)了應(yīng)用的自動(dòng)部署、動(dòng)態(tài)擴(kuò)容、節(jié)點(diǎn)切換、健康檢查、AB式版本更新等功能,也歡迎大家將各自的實(shí)現(xiàn)也分享給我。 整體架構(gòu) 整體架構(gòu)...
閱讀 1305·2021-11-24 09:39
閱讀 2686·2021-09-30 09:47
閱讀 1339·2021-09-22 15:15
閱讀 2433·2021-09-10 10:51
閱讀 1976·2019-08-30 15:55
閱讀 2987·2019-08-30 11:06
閱讀 906·2019-08-30 10:53
閱讀 848·2019-08-29 17:26