1、概念: Kubernetes(k8s)中的探针是一种健康检查机制,用于监测Pod内容器的运行状况。主要包括以下三种类型的探针:

2、探针的种类: liveness探针: 在容器启动后执行探针的检测,检测容器是否正常运行 readness探针:在容器初始化就绪,业务容器拉起后。执行就绪检测,如果检测通过说明业务容器可以接受业务流量了 startup探针:确认业务容器是否完成并完成了初始化任务。优点:有效防止应用在启动的过程中被误判为不健康或者未就绪。避免无意义的重启

3、探针的检测方式: exec:通过执行命令的方式来判断是否健康,并判断$? 的返回值 httpget:通过发送http的请求来确认是否就绪,并判断返回码是否正常 tcpsocket:通过tcp链接来确认,比如尝试链接容器的某一个端口如8080,能链接说明正常。

4、举例 常用探针:存活、就绪探针 常用检测方式:httpget #举例:就绪探针,分别以httpget或者exec方式来检测

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: nginx
  name: nginx
  namespace: t-nginx
spec:
  replicas: 2
  containers:
  - name: nginx
    image: nginx:1.24.2
	ports:
	- containerPort: 8443
	readnessProbe:
	  httpGet:
	    path: /test
	    port: 8443
      initialDelaySeconds: 5  #程序初始化就绪后多久开始执行
	  periodSeconds: 5    #探针的执行频率

#如果把httpget检测换成exec的探测如下
readnessProbe:
  exec:
    command:
	- cat 
	- /tmp/test.txt
  failureThreshold: 1    #失败时候的重试次数
  initialDelaySeconds: 5 #初始化检测前的等待时间,可以理解为等待多久后开始第一次测试
  periodSeconds: 5       #执行时间间隔