k8s存活探针的简介与使用
k8s存活探针的简介与使用
简介
k8s可以通过存活探针liveness probe检查容器是否还在运行。可以为pod中的容器单独指定存活探针,如果探测失败,k8s将定期执行探针并重启容器
k8s有三种探测容器的机制:
HTTP Get探针对容器的IP地址执行http get请求,如果探测器收到响应,并且相应状态码不代表错误,认为探测成功,如果不响应或者响应失败,则探测失败,容器将被重新启动。
TCP套接字探针尝试与容器指定端口建立tcp连接,如果连接成功,则认为成功,否则认为失败,重启容器。
Exec探针在容器内部执行任意命令,并检查命令的退出状态码,如果状态码是0
,认为探测成功,所有其他的状态码都被认定为失败
在生产环境中的pod,有必要定义存活探针,没有探针,k8s无法知道你的应用是否活着,只要进程还在运行,k8s认为容器是健康的。
使用
[root@master01 tz]# kubectl apply -f liveness.pod.yml
[root@master01 tz]# cat liveness.pod.yml
apiVersion: v1
kind: Pod
metadata:
name: liveness
spec:
containers:
- image: luksa/kubia-unhealthy
imagePullPolicy: IfNotPresent
name: tzln
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 30
初始化pod查看重启次数为0
等一会儿看发现已经重启两次
查看存活探针的信息
存活探针的属性:延迟(delay)、超时(timeout)、周期(period)
delay=30表示容器启动后30s检测
timeout表示容器的响应时间,如果timeout=1表示容器必须在一秒内响应,不然视为探测失败
period表示每隔多久探测一次容器
failure表示连续失败多少次重启容器
查看失败原因
提示http探针失败,状态码500,名为tzln的容器将被重启
存活探针不会消耗太多的计算资源
更多推荐
所有评论(0)