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