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


分享到:


相關文章: