共計 988 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān)如何理解 Readiness 探測,文章內(nèi)容質(zhì)量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
Readiness 探測
除了 Liveness 探測,Kubernetes Health Check 機(jī)制還包括 Readiness 探測。
用戶通過 Liveness 探測可以告訴 Kubernetes 什么時候通過重啟容器實現(xiàn)自愈;Readiness 探測則是告訴 Kubernetes 什么時候可以將容器加入到 Service 負(fù)載均衡池中,對外提供服務(wù)。
Readiness 探測的配置語法與 Liveness 探測完全一樣,下面是個例子:
這個配置文件只是將前面例子中的 liveness 替換為了 readiness,我們看看有什么不同的效果。
Pod readiness 的 READY 狀態(tài)經(jīng)歷了如下變化:
剛被創(chuàng)建時,READY 狀態(tài)為不可用。
15 秒后(initialDelaySeconds + periodSeconds),第一次進(jìn)行 Readiness 探測并成功返回,設(shè)置 READY 為可用。
30 秒后,/tmp/healthy 被刪除,連續(xù) 3 次 Readiness 探測均失敗后,READY 被設(shè)置為不可用。
通過 kubectl describe pod readiness 也可以看到 Readiness 探測失敗的日志。
下面對 Liveness 探測和 Readiness 探測做個比較:
Liveness 探測和 Readiness 探測是兩種 Health Check 機(jī)制,如果不特意配置,Kubernetes 將對兩種探測采取相同的默認(rèn)行為,即通過判斷容器啟動進(jìn)程的返回值是否為零來判斷探測是否成功。
兩種探測的配置方法完全一樣,支持的配置參數(shù)也一樣。不同之處在于探測失敗后的行為:Liveness 探測是重啟容器;Readiness 探測則是將容器設(shè)置為不可用,不接收 Service 轉(zhuǎn)發(fā)的請求。
Liveness 探測和 Readiness 探測是獨立執(zhí)行的,二者之間沒有依賴,所以可以單獨使用,也可以同時使用。用 Liveness 探測判斷容器是否需要重啟以實現(xiàn)自愈;用 Readiness 探測判斷容器是否已經(jīng)準(zhǔn)備好對外提供服務(wù)。
關(guān)于如何理解 Readiness 探測 就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。