K8s实战-基于LivenessProbe健康检查
2023-12-29 08:34:20
LivenessProbe探针用于判断容器是否存活,如果探测到容器不健康,则kubelet将杀掉该容器,然后根据重启策略处理。
LivenessProbe的实现方式:
- ExecAction:在容器内部执行一个命令,如果该命令的返回码为0,则健康
- TCPSocketAction:在容器内部使用TCP建立连接
- HTTPGetAction:使用http方式访问容器服务,如果http相应码在200-400之间则认为容器健康
下面我们就一一来实践一下
1、ExecAction
yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: liveness
name: liveness
spec:
containers:
- image: busybox
name: liveness
args:
- /bin/sh
- -c
- echo ok > /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600
livenessProbe:
exec:
command:
- cat1
- /tmp/health
initialDelaySeconds: 5
timeoutSeconds: 1
我们把cat命令故意写错成cat1,测试如下:
可以看到探测不成功一直在重启,符合预期!
2、TCPSocketAction
yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: liveness
name: liveness
spec:
containers:
- image: nginx
name: liveness
livenessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
timeoutSeconds: 1
我们把port改成8080,测试如下:
可以看到探测失败在不断重启,符合预期!
3、HTTPGetAction
yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: liveness
name: liveness
spec:
containers:
- image: nginx
name: liveness
livenessProbe:
httpGet:
port: 8080
path: /
initialDelaySeconds: 5
timeoutSeconds: 1
测试如下:
可以看到探测失败在不断重启,符合预期!
文章来源:https://blog.csdn.net/qq_36588424/article/details/135274466
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!