一、Pod的三种探针

StartupProbe:k8s 1.16版本后新加的探测方式,用于判断容器内应用程序是否已经启动。如果配置了startupProbe,就会先禁止其他的探测,直到它成功为止,成功后将不再进行探测。比较适用于容器启动时间长的场景。
LivenessProbe:用于探测容器是否运行,如果探测失败,kubelet会根据配置的重启策略进行相应的处理。若没有配置该探针,默认就是success。
ReadinessProbe:一般用于探测容器内的程序是否健康,它的返回值如果为success,那么久代表这个容器已经完成启动,并且程序已经是可以接受流量的状态。

#   startupProbe: # 可选,检测容器内进程是否完成启动
#      httpGet:      # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。
#            path: /api/successStart # 检查路径
#            port: 80
    readinessProbe: # 可选,健康检查
      httpGet:      # httpGet检测方式,生产环境建议使用httpGet实现接口级健康检查,健康检查由应用程序提供。
            path: / # 检查路径
            port: 80        # 监控端口
    livenessProbe:  # 可选,健康检查
      #exec:        # 执行容器命令检测方式
            #command: 
            #- cat
            #- /health
      #httpGet:       # httpGet检测方式
      #   path: /_health # 检查路径
      #   port: 8080
      #   httpHeaders: # 检查的请求头
      #   - name: end-user
      #     value: Jason 

二、Pod探针的检测方式

注意:三种检查方式同时只能使用一种。

ExecAction:在容器内执行一个命令,如果返回值为0,则认为容器健康。
TCPSocketAction:通过TCP连接检查容器内的端口是否通的,如果是通的就认为容器健康。
HTTPGetAction:通过应用程序暴露的API地址检查程序是否正常,如果状态码为200~400之间,则认为容器健康。(常用)

三、探针检查参数配置

#      initialDelaySeconds: 60       # 初始化时间
#      timeoutSeconds: 2     # 超时时间
#      periodSeconds: 5      # 检测间隔
#      successThreshold: 1 # 检查成功为1次表示就绪
#      failureThreshold: 2 # 检测失败2次表示未就绪


 

Logo

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

更多推荐