k8s學(xué)習(xí)筆記-探針
容器探針probe是kubelet對(duì)容器是否運(yùn)行正常的一種診斷手段,kubelet既可以在容器內(nèi)執(zhí)行代碼,也可以向服務(wù)發(fā)起一個(gè)請(qǐng)求。
探針類型
k8s提供三種類型的探針,分別是
livenessProbe
檢查容器運(yùn)行狀態(tài),如果容器發(fā)生錯(cuò)誤,則kubelet會(huì)殺死容器。如果沒(méi)有設(shè)置該探針,默認(rèn)狀態(tài)為success。
readinessProbe
就緒探針,顧名思義就是檢查容器是否準(zhǔn)備好提供服務(wù)了,如果診斷失敗,端點(diǎn)控制器會(huì)將所有與之匹配的服務(wù)端點(diǎn)中刪除該P(yáng)od的IP地址。如果沒(méi)有設(shè)置該探針,默認(rèn)狀態(tài)為success。
startupProbe
這個(gè)探針我們比較常用,探測(cè)容器內(nèi)的應(yīng)用是否正常啟動(dòng)的。如果提供了啟動(dòng)探針,則其他所有探針都會(huì)被禁用,知道此探針成功為止。如果探測(cè)失敗,kubelet也會(huì)殺死容器。如果沒(méi)有設(shè)置該探針。默認(rèn)狀態(tài)為success。
那什么時(shí)候該用啟動(dòng)探針(startupProbe)呢?
對(duì)于pod中的容器需要花費(fèi)較長(zhǎng)時(shí)間才能啟動(dòng),啟動(dòng)探針是需要的。
如果容器的啟動(dòng)時(shí)間超過(guò)了initialDelaySeconds + failureThreshold * periodSeconds的總值,那么就應(yīng)該設(shè)置一個(gè)啟動(dòng)探針。并且應(yīng)該將failureThreshold設(shè)置的足夠高,為了有充足的時(shí)間讓容器啟動(dòng)。