【K8s】专题六(2):Kubernetes 稳定性之健康检查

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

公众号二维码


目录

一、基本介绍

二、工作原理

三、探针类型

1、存活探针(LivenessProbe)

2、就绪探针(ReadinessProbe)

3、启动探针(StartupProbe)

四、探测方式

1、EXEC 命令探测(ExecAction)

2、TCP 连接探测(TCPSocketAction)

3、HTTP 请求探测(HTTPGetAction)

五、资源清单(示例)


一、基本介绍

在 Kubernetes 中,健康检查是集群通过探针(Probe)定期检查容器是否健康运行,并自动维持容器健康运行的一种机制。

健康检查可以保障容器内应用程序的稳定性和可用性,并控制应用程序何时可以提供对外访问。


二、工作原理
  • 定义探针:用户在 Pod 中定义探针配置,包括探针类型、探测方式、探测间隔和阈值
  • 触发探针:Kubernetes 会根据定义的探针配置,定期触发健康检查
  • 执行探针:Kubernetes 会根据定义的探针配置,在容器中执行 EXEC 命令、建立 TCP 连接或发送 HTTP Get 请求
  • 结果处理:探针执行成功则等待下一次探测,探针执行失败则根据既定规则对容器进行处理


三、探针类型
1、存活探针(LivenessProbe)

LivenessProbe 用于判断容器是否存活,即是否处于 Running 状态。如果 LivenessProbe 检测到容器不健康,Kubernetes 会认为容器内应用程序已经崩溃或挂起,会通过 Kubelet 对该容器进行 Kill 和重启处理。

2、就绪探针(ReadinessProbe)

ReadinessProbe 用于判断容器是否可用,即是否处于 Ready 状态。如果 Pod 中的全部容器都达到 Ready 状态,Pod 才可以接收和处理请求,否则 Kubernetes 会认为容器内应用程序启动异常,会通过 Kubelet 对该容器进行 Kill 和重启处理。

3、启动探针(StartupProbe)

某些应用程序启动非常慢,如果只配置 LivenessProbe 或 ReadinessProbe,很可能出现应用程序还没有完成启动,对应的容器就被 Kill 掉无限重启的情况。

配置有 StartupProbe 的 Pod,在应用程序没有成功启动之前,LivenessProbe 和 ReadinessProbe 均不生效,不会重启容器。


四、探测方式
1、EXEC 命令探测(ExecAction)

尝试在容器内执行一个 EXEC 命令,返回码为 0 表明容器健康。

2、TCP 连接探测(TCPSocketAction)

尝试与容器的指定端口建立 TCP 连接,如果能够建立表明容器健康。

3、HTTP 请求探测(HTTPGetAction)

尝试对容器的指定接口发送 HTTP Get 请求,如果响应码大于等于 200 且小于 400 表明容器健康。


五、资源清单(示例)
apiVersion: apps/v1
kind: Deployment
metadata:
  nanme: demo-deployment
spec:
...
    spec:
      containers:
      - name: demo-container
...
        startupProbe / livenessProbe / readinessProbe:
          exec:                              # EXEC 命令探测方式
            command: ["cat", "/health.txt"]
          或
          tcpSocket:                         # TCP 连接探测方式
            port: 80
          或
          httpGet:                           # HTTP 请求探测方式
            path: /health
            port: 80
          initialDelaySeconds: 5             # 首次探测前等待时间
          periodSeconds: 10                  # 探测间隔时间
          timeoutSeconds: 1                  # 探测超时时间
          successThreshold: 1                # 探测成功阈值
          failureThreshold: 3                # 探测失败阈值

  • 70
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者Sun1989

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值