小编给大家分享一下kubernetes探针怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、基本介绍当我们在 k8s 上运行应用时,应用是否运行正常这是我们
小编给大家分享一下kubernetes探针怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
当我们在 k8s 上运行应用时,应用是否运行正常这是我们比较关心的,但是如果我们只是通过查看应用的运行状态,这是很难判断出应用是否处于运行状态的;因为在某些时候,容器正常运行并不能代表应用健康,所以我们可以通过 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 版本后增加的)
[root@k8s-master01 ~]# vim Tomcat-service.yamlapiVersion: v1kind: Podmetadata: name: tomcat-servicespec: 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
[root@k8s-master01 ~]# vim tomcat-WEB-server.yamlapiVersion: v1kind: Podmetadata: name: tomcat-web-serverspec: 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(即,当容器退出时,将要退出的容器进行重启)
[root@k8s-master01 ~]# vim tomcat-async-service.yamlapiVersion: v1kind: Podmetadata: name: tomcat-async-servicespec: 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探针怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!
--结束END--
本文标题: Kubernetes探针怎么用
本文链接: https://lsjlt.com/news/325195.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0