k8s對pod的健康檢查

2021-10-08 07:51:59 字數 3095 閱讀 4439

探針的使用

針對此類問題,kubernetes提供了探針的方式對容器進行健康檢查。

k8s提供的探針分別為livenessprobereadinessprobe,各node節點的kubelet根據探針的內容定期對容器執行探測,以達到對容器狀態的判斷。

livenessprobe:用於判斷容器是否存活(status是否為running狀態)。若存活探測失敗,則kubelet會kill掉該容器,並根據容器所設定的重啟策略進行下一步操作,

預設情況下,若未設定livenessprobe,則kubelet認為livenessprobe探針返回值為success。

readinessprobe:用於判斷容器服務是否可用(status是否為ready狀態),達到ready狀態的容器可以進行接收請求。若就緒探測失敗,則端點控制器(endpoints)將從與pod匹配的所有service中刪除該pod的ip位址。

設定了該探針後,初始延遲之前探針的狀態為failure;

如果未設定該探針,則預設狀態為success。

端點控制器:

livenessprobereadinessprobe均可配置以下三種方式,滿足常用的探測需求:

每種方式下均可配置以下探針執行時的引數:引數

型別說明

failurethreshold

當上一次探測結果為成功時,需要連續探測多少次失敗,才視為探測結果失敗。預設為3次,最少為1次

initialdelayseconds

容器啟動多少秒後,啟動第一次探測

periodseconds

執行探測的頻率,預設為10s,最少為1s

successthreshold

當上一次探測結果為失敗時,需要連續探測多少次成功,才視為探測結果成功。預設為1,且為了容器的正常啟動必須設定為1

timeoutseconds

探測超時的秒數,預設為1s,最小為1s

探測結果分為3種:

readinessprobe和livenessprobe(不限),這裡僅介紹探針在yaml檔案中的書寫方式。

$ cat

> liveness.yaml <<

eofapiversion: v1

kind: pod

metadata:

name: liveness

labels:

name: liveness

spec:

containers:

- name: liveness

image: busybox

imagepullpolicy: ifnotpresent

args:

- /bin/sh

- -c

- echo ok > /tmp/health; sleep 10; rm -fr /tmp/health; sleep 600

livenessprobe:

exec:

command:

- cat

- /tmp/health

failurethreshold: 3

initialdelayseconds: 15

timeoutseconds: 1

periodseconds: 3

eof

當livenessprobe探測失敗時,重新啟動容器。

事例yaml檔案主要採用了livenessprobe探針,readinessprobe寫法類似,主要是探測失敗時,會從端點控制器中剔除相關pod並重啟。

還可以通過readinessgates自定義探針,進行探測,具體可通過kubectl explain pod.spec.readinessgates檢視。

K8S中pod健康狀態的檢查

什麼是 container probes 通過k8s的架構圖,我們可以發現,每個node節點上都有 kubelet 這個元件,container probe 容器探針 也就是容器的健康檢查是由 kubelet 定期執行的。container probe有以下兩種方式,分別為liveness prob...

k8s的健康檢查和可用性檢查

livenessprobe 健康狀態檢查,週期性檢查服務是否存活,檢查結果失敗,將重啟容器 readinessprobe 可用性檢查,週期性檢查服務是否可用,不可用將從service的endpoints中移除4.3.2exec 執行一段命令 返回值為0,非0 httpget 檢測某個 http 請求...

k8s集群建立pod,執行pod

k8s集群搭建好後,各個node的狀態變成了ready,就可以建立pod,建立完成後,就會預設的執行其中的container。使用乙個簡單yaml檔案描述pod apiversion v1 必選,版本號,例如v1,版本號必須可以用 kubectl api versions 查詢到 kind pod ...