Liveness 探测 - 每天5分钟玩转 Docker 容器技术(143)
Liveness 探測讓用戶可以自定義判斷容器是否健康的條件。如果探測失敗,Kubernetes 就會重啟容器。
還是舉例說明,創建如下 Pod:
啟動進程首先創建文件?/tmp/healthy,30 秒后刪除,在我們的設定中,如果?/tmp/healthy?文件存在,則認為容器處于正常狀態,反正則發生故障。
livenessProbe?部分定義如何執行 Liveness 探測:
探測的方法是:通過?cat?命令檢查?/tmp/healthy?文件是否存在。如果命令執行成功,返回值為零,Kubernetes 則認為本次 Liveness 探測成功;如果命令返回值非零,本次 Liveness 探測失敗。
initialDelaySeconds: 10?指定容器啟動 10 之后開始執行 Liveness 探測,我們一般會根據應用啟動的準備時間來設置。比如某個應用正常啟動要花 30 秒,那么?initialDelaySeconds?的值就應該大于 30。
periodSeconds: 5?指定每 5 秒執行一次 Liveness 探測。Kubernetes 如果連續執行 3 次 Liveness 探測均失敗,則會殺掉并重啟容器。
下面創建 Pod?liveness:
從配置文件可知,最開始的 30 秒,/tmp/healthy?存在,cat?命令返回 0,Liveness 探測成功,這段時間?kubectl describe pod liveness?的?Events部分會顯示正常的日志。
35 秒之后,日志會顯示?/tmp/healthy?已經不存在,Liveness 探測失敗。再過幾十秒,幾次探測都失敗后,容器會被重啟。
除了 Liveness 探測,Kubernetes Health Check 機制還包括 Readiness 探測,這是我們下一節要學習的內容。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
總結
以上是生活随笔為你收集整理的Liveness 探测 - 每天5分钟玩转 Docker 容器技术(143)的全部內容,希望文章能夠幫你解決所遇到的問題。