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的重启策略来决定对应措施

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐