共計(jì) 872 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
本篇文章為大家展示了如何理解 Liveness 探測(cè),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
Liveness 探測(cè)
Liveness 探測(cè)讓用戶可以自定義判斷容器是否健康的條件。如果探測(cè)失敗,Kubernetes 就會(huì)重啟容器。
還是舉例說(shuō)明,創(chuàng)建如下 Pod:
啟動(dòng)進(jìn)程首先創(chuàng)建文件 /tmp/healthy,30 秒后刪除,在我們的設(shè)定中,如果 /tmp/healthy 文件存在,則認(rèn)為容器處于正常狀態(tài),反正則發(fā)生故障。
livenessProbe 部分定義如何執(zhí)行 Liveness 探測(cè):
探測(cè)的方法是:通過(guò) cat 命令檢查 /tmp/healthy 文件是否存在。如果命令執(zhí)行成功,返回值為零,Kubernetes 則認(rèn)為本次 Liveness 探測(cè)成功;如果命令返回值非零,本次 Liveness 探測(cè)失敗。
initialDelaySeconds: 10 指定容器啟動(dòng) 10 之后開(kāi)始執(zhí)行 Liveness 探測(cè),我們一般會(huì)根據(jù)應(yīng)用啟動(dòng)的準(zhǔn)備時(shí)間來(lái)設(shè)置。比如某個(gè)應(yīng)用正常啟動(dòng)要花 30 秒,那么 initialDelaySeconds 的值就應(yīng)該大于 30。
periodSeconds: 5 指定每 5 秒執(zhí)行一次 Liveness 探測(cè)。Kubernetes 如果連續(xù)執(zhí)行 3 次 Liveness 探測(cè)均失敗,則會(huì)殺掉并重啟容器。
下面創(chuàng)建 Pod liveness:
從配置文件可知,最開(kāi)始的 30 秒,/tmp/healthy 存在,cat 命令返回 0,Liveness 探測(cè)成功,這段時(shí)間 kubectl describe pod liveness 的 Events 部分會(huì)顯示正常的日志。
35 秒之后,日志會(huì)顯示 /tmp/healthy 已經(jīng)不存在,Liveness 探測(cè)失敗。再過(guò)幾十秒,幾次探測(cè)都失敗后,容器會(huì)被重啟。
除了 Liveness 探測(cè),Kubernetes Health Check 機(jī)制還包括 Readiness 探測(cè)。
上述內(nèi)容就是如何理解 Liveness 探測(cè),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。