k8s pod健康检查

		livenessProbe: # pod 内部健康检查的设置
          httpGet: # 通过httpget检查健康,返回200-399之间,则认为容器正常
            path: /healthCheck # URI地址
            port: 8080 # 端口
            scheme: HTTP # 协议
            # host: 127.0.0.1 # 主机地址
          initialDelaySeconds: 30 # 表明第一次检测在容器启动后多长时间后开始
          timeoutSeconds: 5 # 检测的超时时间
          periodSeconds: 30 # 检查间隔时间
          successThreshold: 1 # 成功门槛
          failureThreshold: 5 # 失败门槛,连接失败5次,pod杀掉,重启一个新的pod
        readinessProbe: # Pod 准备服务健康检查设置
          httpGet:
            path: /healthCheck
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 30
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 5
        #也可以用这种方法   
        #exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常   
        #  command:   
        #    - cat   
        #    - /tmp/health   
        #也可以用这种方法   
        #tcpSocket: # 通过tcpSocket检查健康  
        #  port: number 

4、Pod探针的相关属性
两种探针有许多字段可选,可以用来更加精确的控制LivenessProbe和ReadinessProbe两种探针的探测:

initialDelaySeconds:Pod启动后首次进行检查的等待时间,单位“秒”

periodSeconds:检查的间隔时间,默认为10s,单位“秒”

timeoutSeconds:探针执行检测请求后,等待响应的超时时间,默认为1s,单位“秒”

successThreshold:探针检测失败后认为成功的最小连接成功次数,默认为1s,在liveness探针中必须为1s,最小为1s

failureThreshold:探测失败的重试次数,重试一定次数后将认为失败,在readiness探针中,Pod会被标记为未就绪,默认3s,最小值1s

5、两种探针的区别
总的来说 ReadinessProbe 和 LivenessProbe 是使用相同探测的方式,只是探测后对 Pod 的处置方式不同:

ReadinessProbe:但检测失败后,将Pod的IP:Port从对应Service关联的EndPoint地址列表中删除

LivenessProbe:当检测失败后将容器杀死,并根据Pod的重启策略来决定对应措施

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
有很多可能导致 Kubernetes (k8s) Pod健康检查无法正常启动。以下是一些常见的原因和解决方法: 1. 容器启动失败:健康检查无法启动可能是因为容器本身无法正常启动。你可以检查容器的启动日志,查看是否有任何错误或异常信息。可以使用 `kubectl logs` 命令来查看容器日志,并尝试修复容器启动问题。 2. 端口冲突:健康检查通常通过访问容器的指定端口来检查容器的健康状态。如果容器正在使用的端口与健康检查配置中的端口冲突,健康检查就无法启动。确保容器的端口没有被其他进程占用,并且健康检查配置中指定的端口与容器的实际监听端口一致。 3. 健康检查配置错误:检查你的健康检查配置是否正确。确保你已正确设置健康检查的路径、端口和协议等参数。可以使用 `kubectl describe pod` 命令来查看 Pod 的详细信息,并确保健康检查配置正确无误。 4. 容器运行时问题:某些容器运行时(如Docker)可能会导致健康检查失败。尝试更新容器运行时版本,或尝试使用其他容器运行时来解决此问题。 5. 网络问题:如果容器无法与健康检查目标进行通信,健康检查也会失败。确保容器所在的节点和健康检查目标之间的网络连接正常,并且防火墙规则正确配置。 如果以上方法都无法解决问题,你可以提供更多关于你的环境和配置的详细信息,以便我们能够更好地帮助你解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值