Kubernetes提供了自愈的能力,具體就是能感知到容器崩潰,然后能夠重啟這個容器。但是有時候例如Java程序內存泄漏了,程序無法正常工作,但是JVM進程卻是一直運行的,對于這種應用本身業(yè)務出了問題的情況,Kubernetes提供了Liveness Probe機制,通過檢測容器響應是否正常來決定是否重啟,這是一種很好的健康檢查機制。
毫無疑問,每個Pod最好都定義Liveness Probe,否則Kubernetes無法感知Pod是否正常運行。
Kubernetes支持如下三種探測機制。
HTTP GET:向容器發(fā)送HTTP GET請求,如果Probe收到2xx或3xx,說明容器是健康的。
TCP Socket:嘗試與容器指定端口建立TCP連接,如果連接成功建立,說明容器是健康的。
Exec:Probe執(zhí)行容器中的命令并檢查命令退出的狀態(tài)碼,如果狀態(tài)碼為0則說明健康。