Readiness 探測 - 每天5分鍾玩轉 Docker 容器技術(144)


除了 Liveness 探測,Kubernetes Health Check 機制還包括 Readiness 探測。

用戶通過 Liveness 探測可以告訴 Kubernetes 什么時候通過重啟容器實現自愈;Readiness 探測則是告訴 Kubernetes 什么時候可以將容器加入到 Service 負載均衡池中,對外提供服務。

Readiness 探測的配置語法與 Liveness 探測完全一樣,下面是個例子:

這個配置文件只是將前面例子中的 liveness 替換為了 readiness,我們看看有什么不同的效果。

Pod readiness 的 READY 狀態經歷了如下變化:

  1. 剛被創建時,READY 狀態為不可用。

  2. 15 秒后(initialDelaySeconds + periodSeconds),第一次進行 Readiness 探測並成功返回,設置 READY 為可用。

  3. 30 秒后,/tmp/healthy 被刪除,連續 3 次 Readiness 探測均失敗后,READY 被設置為不可用。

通過 kubectl describe pod readiness 也可以看到 Readiness 探測失敗的日志。

下面對 Liveness 探測和 Readiness 探測做個比較:

  1. Liveness 探測和 Readiness 探測是兩種 Health Check 機制,如果不特意配置,Kubernetes 將對兩種探測采取相同的默認行為,即通過判斷容器啟動進程的返回值是否為零來判斷探測是否成功。

  2. 兩種探測的配置方法完全一樣,支持的配置參數也一樣。不同之處在於探測失敗后的行為:Liveness 探測是重啟容器;Readiness 探測則是將容器設置為不可用,不接收 Service 轉發的請求。

  3. Liveness 探測和 Readiness 探測是獨立執行的,二者之間沒有依賴,所以可以單獨使用,也可以同時使用。用 Liveness 探測判斷容器是否需要重啟以實現自愈;用 Readiness 探測判斷容器是否已經准備好對外提供服務

理解了 Liveness 探測和 Readiness 探測的原理,下一節我們會討論如何在業務場景中使用 Health Check。

書籍:
1.《每天5分鍾玩轉Docker容器技術》
https://item.jd.com/16936307278.html

2.《每天5分鍾玩轉OpenStack》
https://item.jd.com/12086376.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM