kubernetes中如何实现Pod健康检查

71次阅读
没有评论

共计 1792 个字符,预计需要花费 5 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 kubernetes 中如何实现 Pod 健康检查,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一:前言
对 Pod 的健康状态检查可以通过两类探针来检查:LivenessProbe 和 ReadinessProbe
1.LivenessProbe 探针:用于判断容器是否存活,如果 LivenessProbe 探针探测到容器不健康,则 kubelet 将杀掉该容器,并根据容器的重启策略做相应的处理。如果一个容器不包含 LivenessProbe 探针,那么 kubelet 认为该容器的 LivenessProbe 探针返回值永远是“Success”.

2.ReadinessProbe 探针:  用于判断容器是否启动完成,可以接收请求。如果 ReadinessProbe 探针检测到失败,则 Pod 的状态将被修改。Endpoint Controller 将从 Service 的 Endpoint 中删除包括该容器所在 Pod 的 Endpoint.

二:LivenessProbe 实现方式

1.ExecAction: 在容器内部执行一个命令,如果该命令的返回码为 0,则表面容器健康。

apiVersion: v1

kind: Pod

metadata:

 labels:

 test: liveness

 name: liveness-exec

spec:

 containers:

 –  name:liveness

 image:busybox

 args:

 –  /bin/sh

 – -c

 – echo ok /tmp/health; sleep 10; rm -rf /tmp/health; sleep 600

    livenessProbe:

      exec:

        command:

        – cat

        – /tmp/health

    initialDelaySeconds: 15

    timeoutSeconds: 1

通过执行“cat /tmp/health”命令来判断一个容器运行是否正常。而该 Pod 运行之后,在创建 /tmp/health 文件的 10s 之后将删除该文件,而 LivenessProbe 健康检查的初始探测时间 (initialDelaySeconds) 为 15s, 探测结果将是 Fail,将导致 kubelet 杀掉该容器并重启它。

2.TCPSocketAction: 通过容器的 IP 地址和端口号执行 TCP 检查,如果能够建立 TCP 连接,则表面容器健康。

apiVersion: v1

kind: Pod

metadata:

 name: pod-with-healthcheck

spec:

 containers:

 – name: nginx

 image: nginx

 ports:

 – containerPort: 80

 livenessProbe:

 tcpSocket:

 port: 80

 initialDelaySeconds: 30

 timeoutSeconds: 1

3. HTTPGetAction: 通过容器的 IP 地址,端口号及路径调用 HTTP Get 方法,如果响应的状态码大于等于 200 且小于 400,则认为容器状态健康。

apiVersion: v1

kind: Pod

metadata:

 name: pod-with-healthcheck

spec:

 containers:

 – name: nginx

 image: nginx

 ports:

 – containerPort: 80

 livenessProbe:

 httpGet:

 port: 80

      path: /_status/healthz

 initialDelaySeconds: 30

 timeoutSeconds: 1

kubelet 定时发送 HTTP 请求到 localhost:80/_status/healthz 来进行容器应用的健康检查。

三:说明

1.initialDelaySeconds:启动容器后进行首次健康检查的等待时间,单位为 s
2.timeoutSeconds: 健康检查发送请求后等待响应的超时时间,单位为 s. 当超时发生时,kubelet 会认为容器已经无法提供服务,将会重启该容器。

以上是“kubernetes 中如何实现 Pod 健康检查”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1792字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)