K8s中對(duì)于pod資源對(duì)象的健康狀態(tài)檢測(cè),提供了三類probe(探針)來(lái)執(zhí)行對(duì)pod的健康監(jiān)測(cè):
livenessProbe探針
可以根據(jù)用戶自定義規(guī)則來(lái)判定pod是否健康,如果livenessProbe探針探測(cè)到容器不健康,則kubelet會(huì)根據(jù)其重啟策略來(lái)決定是否重啟,如果一個(gè)容器不包含livenessProbe探針,則kubelet會(huì)認(rèn)為容器的livenessProbe探針的返回值永遠(yuǎn)成功。
ReadinessProbe探針
同樣是可以根據(jù)用戶自定義規(guī)則來(lái)判斷pod是否健康,如果探測(cè)失敗,控制器會(huì)將此pod從對(duì)應(yīng)service的endpoint列表中移除,從此不再將任何請(qǐng)求調(diào)度到此Pod上,直到下次探測(cè)成功。
startupProbe探針
啟動(dòng)檢查機(jī)制,應(yīng)用一些啟動(dòng)緩慢的業(yè)務(wù),避免業(yè)務(wù)長(zhǎng)時(shí)間啟動(dòng)而被上面兩類探針kill掉,這個(gè)問題也可以換另一種方式解決,就是定義上面兩類探針機(jī)制時(shí),初始化時(shí)間定義的長(zhǎng)一些即可。