其他分享
首页 > 其他分享> > Kubernetes-探针readinessProbe、livenessProbe和startupProbe

Kubernetes-探针readinessProbe、livenessProbe和startupProbe

作者:互联网

image

更多相关资料见 : K8S Basic-Pod资源管理进阶(Pod声明周期、相位、资源限制)

目录

一、Pod三种探针方式


1.1、readinessProbe存活探针

如果ReadinessProbe探针检测到失败,则Pod的状态被修改。Endpoint Controller将从Service的Endpoint中删除包含该容器所在Pod的Endpoint。

1.1.1、存活探针 - HTTP协议

containers:
  - name: xxx
    image: xxx

    # 存活检查
    livenessProbe:
      httpGet:
        scheme: HTTP             # 协议
        path: /actuator/health   # 路径
        port: 8080               # 端口
      initialDelaySeconds: 30    # 延迟探测时间(秒) 【 在k8s第一次探测前等待秒 】
      periodSeconds: 10          # 执行探测频率(秒) 【 每隔秒执行一次 】
      timeoutSeconds: 1          # 超时时间
      successThreshold: 1        # 健康阀值 
      failureThreshold: 3        # 不健康阀值 

1.1.2、存活探针 - TCP协议

containers:
  - name: xxx
    image: xxx

    # 存活检查
    livenessProbe:
      tcpSocket:                 # TCP
        port: 8090               # 端口
      initialDelaySeconds: 50    # 延迟探测时间(秒) 【 在k8s第一次探测前等待秒 】
      periodSeconds: 10          # 执行探测频率(秒) 【 每隔秒执行一次 】
      timeoutSeconds: 1          # 超时时间
      successThreshold: 1        # 健康阀值 
      failureThreshold: 3        # 不健康阀值 

# 上面配置的意思是容器启动50s后,每10s检查一次,允许失败的次数是3次。如果失败次数超过3则会触发restartPolicy。

1.2、readnessProbe就绪探针

1.2.1、就绪探针 - HTTP协议

containers:
  - name: xxx
    image: xxx

    # 就绪检查
    readinessProbe:
      httpGet:
        scheme: HTTP             # 协议
        path: /actuator/health   # 路径
        port: 8080               # 端口
      initialDelaySeconds: 30    # 延迟探测时间(秒)【 在k8s第一次探测前等待秒 】
      periodSeconds: 2           # 执行探测频率(秒) 【 每隔秒执行一次 】
      timeoutSeconds: 1          # 超时时间
      successThreshold: 1        # 健康阀值 
      failureThreshold: 3        # 不健康阀值 

1.3、startupProbe启动探针

Indicates whether the application within the Container is started. All other probes are disabled if a startup probe is provided, until it succeeds. If the startup probe fails, the kubelet kills the Container, and the Container is subjected to its restart policy. If a Container does not provide a startup probe, the default state is Success

大概是意思是:判断容器内的应用程序是否已启动。如果提供了启动探测,则禁用所有其他探测,直到它成功为止。如果启动探测失败,kubelet将杀死容器,容器将服从其重启策略。如果容器没有提供启动探测,则默认状态为成功。

注意:不要将startupProbe和readinessProbe混淆。

1.3.1、启动探针

livenessProbe:
  httpGet:
    path:/test
    prot:80
  failureThreshold:1
  initialDelay:10
  periodSeconds:10

startupProbe:
  httpGet:
    path:/test
    prot:80
  failureThreshold:10
  initialDelay:10
  periodSeconds:10

# 上面的配置是只有startupProbe探测成功后再交给livenessProbe。咱们startupProbe配置的是10*10s,也就是说只要应用在100s内启动都是OK的,并且应用挂掉了10s就会发现问题

标签:容器,livenessProbe,探针,探测,存活,readinessProbe,startupProbe
来源: https://www.cnblogs.com/dai-zhe/p/14992936.html