本文主要是介绍K8s实战-基于LivenessProbe健康检查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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: 5timeoutSeconds: 1
我们把cat命令故意写错成cat1,测试如下:
可以看到探测不成功一直在重启,符合预期!
2、TCPSocketAction
yaml
apiVersion: v1
kind: Pod
metadata: creationTimestamp: null labels: run: liveness name: liveness
spec: containers: - image: nginxname: livenesslivenessProbe: tcpSocket:port: 8080initialDelaySeconds: 5timeoutSeconds: 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: 8080path: /initialDelaySeconds: 5timeoutSeconds: 1
测试如下:
可以看到探测失败在不断重启,符合预期!
这篇关于K8s实战-基于LivenessProbe健康检查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!