应用健康状态检测

一、Liveness 与 Readiness

1、初识 Liveness 与 Readiness

(1) Liveness(存活性):Liveness 探针是一个用于检测应用程序是否处于活动状态的机制,通常通过周期性地向应用程序发送请求并检查其响应来完成。如果应用程序未能响应,Liveness 探针将认为应用程序已经死掉,并触发相应的处理机制,例如重启应用程序或者通知相关的监控系统。

(2) Readiness(就绪性):Readiness 探针用于检测应用程序是否已经完成了启动过程,并且已经准备好处理请求。Readiness 探针不会周期性地发送请求,而是在容器启动时进行一次性检查。如果应用程序处于就绪状态,Readiness 探针会返回成功响应;否则,它会返回失败响应,容器编排系统(如 Kubernetes)将不会将流量路由到该容器。

2、探测方式

Liveness 指针和 Readiness 指针支持三种不同的探测方式:

(1) 第一种是 httpGet。它是通过发送 http Get 请求来进行判断的,当返回码是 200-399 之间的状态码时,标识这个应用是健康的。

(2) 第二种探测方式是 Exec。它是通过执行容器中的一个命令来判断当前的服务是否是正常的,当命令行的返回结果是 0,则标识容器是健康的。

一个 Liveness probe,它里面配置了一个 exec 的一个诊断,又配置了一个 command 的字段,这个 command 字段里面通过 cat 一个具体的文件来判断当前 Liveness probe 的状态,当这个文件里面返回的结果是 0 时,或者说这个命令返回是 0 时,它会认为此时这个 pod 是处在健康的一个状态。

(3) 第三种探测方式是 tcpSocket。它是通过探测容器的 IP 和 Port 进行 TCP 健康检查,如果这个 TCP 的链接能够正常被建立,那么标识当前这个容器是健康的。

tcpSocket 只需要设置一个检测的端口,例如 8080 端口,当这个 8080 端口 tcp connect 审核正常被建立的时候,认为是健康的一个状态。

3、探测结果

从探测结果来讲主要分为三种:

(1) 第一种是 success,当状态是 success 的时候,表示 container 通过了健康检查,也就是 Liveness probe 或 Readiness probe 是正常的一个状态。

(2) 第二种是 Failure,Failure 表示的是这个 container 没有通过健康检查,如果没有通过健康检查的话,那么此时就会进行相应的一个处理。

(3) 第三种状态是 Unknown,Unknown 是表示说当前的执行的机制没有进行完整的一个执行,可能是因为超时或者一些脚本没有及时返回,会等待下一次的机制来进行检验。

二、常见应用异常

1、Pending 状态:表示 Pod 还没有被调度到节点上。可以通过查看 Pod 的事件来了解具体原因,例如资源不足、端口占用、或者 Node Selector 不匹配等。

2、Waiting 状态:表示 Pod 已经被调度到节点上,但是镜像拉取失败。可能原因包括镜像不存在、没有配置私有镜像的密钥、或者镜像地址无法访问等。

3、Backoff 状态:表示 Pod 已经被调度并启动,但是启动失败,可能是应用程序本身出现问题,需要查看 Pod 的日志来进一步诊断问题。

4、Running 状态但未正常工作:表示 Pod 已经正常运行,但是应用程序没有对外提供服务。可能原因包括配置错误、端口错误、或者 Liveness/Readiness 检查配置问题等。

5、Service 无法正常工作:可能是由于 Service 的 Selector 配置错误,导致无法找到后端的 Pod,需要检查 Service 的配置和与之关联的 Pod。

三、应用远程调试

1Pod 远程调试

可以通过 exec 的方式进入一个 pod。例如通过 kubectl exec-it pod-name /bin/bash,到这个 pod 里面进入一个交互式的一个 bash,然后在 bash 里面可以做一些相应的命令。

如果指定这一个 pod 里面可能包含着多个 container,可以通过 pod 在指定 -c 到这个 container-name。

2、Servic 远程调试

如果想把本地的应用代理到远程集群,可以通过 Telepresence 这样的工具来实现。

如果想把远程的应用代理到本地,然后在本地进行调用或者是调试,可以用类似像 port-forward 这种机制来实现。

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值