Kunernetes之容器探針

kubelet 使用 liveness probe(存活探針)來確定何時重啟容器。例如,當應用程序處於運行狀態但無法做進一步操作,liveness 探針將捕獲到 deadlock,重啟處於該狀態下的容器,使應用程序在存在 bug 的情況下依然能夠繼續運行下去。


Kunernetes之容器探針


[root@kbs1 yml]# cat jianpod.yml

apiVersion: v1

kind: Pod

metadata:

name: jian-pod-mariadb

labels:

name: mariadb-label

env: test

testl: testlabel

spec:

containers:

- name: mysql-jian-image

image: mysql_slave

imagePullPolicy: Never

ports:

- containerPort: 3306

livenessProbe:

tcpSocket:

port: 3306

nodeSelector:

node: "jiannode1"


探針失敗:(如果沒有探針即便3306端口不通該pod也會顯示正常狀態)

[root@kbs1 yml]# kubectl describe pod jian-pod-mariadb

Type Reason Age From Message

---- ------ ---- ---- -------

Normal Scheduled 15s default-scheduler Successfully assigned default/jian-pod-mariadb to 192.168.135.196

Normal Pulled 14s kubelet, 192.168.135.196 Container image "192.168.135.199:5000/mysql_jian_v2" already present on machine

Normal Created 14s kubelet, 192.168.135.196 Created container mysql-jian-image

Normal Started 13s kubelet, 192.168.135.196 Started container mysql-jian-image

Warning Unhealthy 0s kubelet, 192.168.135.196 Liveness probe failed: dial tcp 172.30.89.2:3306: connect: connection refused

[root@kbs1 yml]# kubectl get pods

NAME READY STATUS RESTARTS AGE

jian-pod-mariadb 1/1 Running 1 116s


探針正常:

[root@kbs1 yml]# kubectl describe pod jian-pod-mariadb

Type Reason Age From Message

---- ------ ---- ---- -------

Normal Scheduled 12s default-scheduler Successfully assigned default/jian-pod-mariadb to 192.168.135.196

Normal Pulled 11s kubelet, 192.168.135.196 Container image "mysql_slave" already present on machine

Normal Created 11s kubelet, 192.168.135.196 Created container mysql-jian-image

Normal Started 11s kubelet, 192.168.135.196 Started container mysql-jian-image

基於http探針:

livenessProbe:

httpGet:

path: /index.html

port: 80

基於exec探針:

livenessProbe:

exec:

command:

- cat

- /tmp/jiantest

延遲探針:

livenessProbe:

exec:

command:

- cat

- /tmp/jiantest

initialDelaySeconds: 5


分享到:


相關文章: