一、基本介绍
当我们在 K8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这是很难判断出应用是否处于运行状态的;因为在某些时候,容器正常运行并不能代表应用健康,所以我们可以通过 Kubernetes 提供的探针。
使用探针来判断容器内运行的应用是否运行正常。官方文档
Kubernetes 的探针有三种类型:
就绪探针(Readiness Probe):判断容器是否已经就绪,若未就绪,容器将会处于未就绪。
存活探针(Liveness Probe):判断容器内的应用程序是否正常,若不正常,K8s 将会重新重启容器。
启动探针(Startup Probe):判断容器内的应用是否启动完成(在启动探针判断成功前,就绪探针和存活探针将不会执行)
探针方式:
exec:通过在容器内执行指定命令,来判断命令退出时返回的状态码,如果为 0 表示正常。
httpGet:通过对容器的 IP 地址、端口和 URL 路径来发送 GET 请求;如果响应的状态码在 200 ~ 399 间,表示正常。
tcpSocket:通过对容器的 IP 地址和指定端口,进行 TCP 检查,如果端口打开,表示正常。
配置项:
initialDelaySeconds:等待我们定义的时间 结束后便开始探针检查;
periodSeconds:探针的 间隔时间;
timeoutSeconds:探针的 超时时间,当超过我们定义的时间后,便会被视为失败;
successThreshold:探针的 最小连续成功数量;
failureThreshold:探针的 最小连续失败数量;
下面我们分别对这三种探针使用了不同的探针方式,主要是为了方便给大家做一个简单的介绍,并不是固定写法;同时,这三种探针是可以配合使用的;像一般比较常见的便是 就绪探针和存活探针配合使用(启动探针是在 K8s 1.6 版本后增加的)
二、K8s 探针使用介绍
1)就绪探针:
[root@k8s-master01 ~]# vim tomcat-service.yaml
apiVersion: v1
kind: Pod
metadata:
name: tomcat-service
spec:
containers:
– name: tomcat-service
image: tomcat:8.5.32
ports:
– containerPort: 8080
readinessProbe:
failureThreshold: 3
tcpSocket:
port: 8080
initialDelaySeconds: 20
periodSeconds: 3
successThreshold: 1
timeoutSeconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-service.yaml
我们可以通过 describe 来查看 Pod 的信息
[root@k8s-master01 ~]# kubectl describe pod tomcat-service
2)存活探针:
[root@k8s-master01 ~]# vim tomcat-web-server.yaml
apiVersion: v1
kind: Pod
metadata:
name: tomcat-web-server
spec:
containers:
– name: tomcat-web-server
image: tomcat:8.5.32
ports:
– containerPort: 8080
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: 8080
scheme: HTTP # 可以使用 HTTP 或 HTTPS 方式
initialDelaySeconds: 20
periodSeconds: 3
successThreshold: 1
timeoutSeconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-web-server.yaml
上面重启是因为,当存活探针或启动探针判断不成功时,便会将容器关闭;后面将牵扯到容器的重启策略。
容器默认的重启策略为 Always(即,当容器退出时,将要退出的容器进行重启)
3)启动探针:
[root@k8s-master01 ~]# vim tomcat-async-service.yaml
apiVersion: v1
kind: Pod
metadata:
name: tomcat-async-service
spec:
containers:
– name: tomcat-async-service
image: tomcat:8.5.32
ports:
– containerPort: 8080
startupProbe:
failureThreshold: 3
exec:
command: [“/bin/sh”,”-c”,”echo Hello World”]
initialDelaySeconds: 20
periodSeconds: 3
successThreshold: 1
timeoutSeconds: 2
[root@k8s-master01 ~]# kubectl create -f tomcat-async-service.yaml
以上就是Kubernetes探针使用介绍的详细内容,更多关于Kubernetes探针的资料请关注服务器之家其它相关文章!
原文地址:https://blog.csdn.net/weixin_46902396/article/details/123379659
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。