探针是由kubelet对容器定期的诊断,探测有三种类型

  1. .执行自定义命令 execAction 在容器内执行命令,返回码为0表示成功,返回为其它表示失败
  2. .向指定的tcp套节字发请求 TCPsocketAction 对指定的端口发起请求
  3. .向指定的http服务发请求 HttpGetAction 返回状态码大于等于200,且小于400表示成功

2.5.3.1容器的就绪性探测,就是容器能对外提供服务后,才可以被service关联到后端

readiness-httpget方法模板

  1. vim readiness-httpget.yaml
  2. apiVersion: v1
  3. kind: Pod
  4. metadata:
  5. name: readiness-httpget-pod
  6. spec:
  7. containers:
  8. - name: readiness-httpget-pod
  9. image: ikubernetes/myapp:v1
  10. imagePullPolicy: IfNotPresent
  11. ports:
  12. - name: http
  13. containerPort: 80
  14. readinessProbe:
  15. httpGet:
  16. port: http
  17. path: /oldboy.html
  18. initialDelaySeconds: 1
  19. failureThreshold: 3
  20. restartPolicy: Always

2.5.3.2 存活性检查,每隔多长时间检查一次,这个动作持续到容器退出为止

liveness-exec方法探测

  1. vim liveness-exec.yaml
  2. apiVersion: v1
  3. kind: Pod
  4. metadata:
  5. name: liveness-exec-pod
  6. namespace: default
  7. spec:
  8. containers:
  9. - name: liveness-exec-pod
  10. image: busybox:latest
  11. imagePullPolicy: IfNotPresent
  12. command: ["/bin/sh","-c","touch /tmp/healthy; sleep 30; rm /tmp/healthy; sheep 300"]
  13. livenessProbe:
  14. exec:
  15. command: ["test","-e","/tmp/healthy"]#检查此文件是否存在
  16. initialDelaySeconds: 1
  17. periodSeconds: 3
  18. restartPolicy: Always

liveness-httpget方法探测

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: liveness-httpget-pod
  5. namespace: default
  6. spec:
  7. containers:
  8. - name: liveness-httpget-pod
  9. image: ikubernetes/myapp:v1
  10. imagePullPolicy: IfNotPresent
  11. ports:
  12. - name: http
  13. containerPort: 80
  14. livenessProbe:
  15. httpGet:
  16. port: http
  17. path: /index.html
  18. initialDelaySeconds: 1
  19. periodSeconds: 3
  20. restartPolicy: Always

liveness-tcpsocket方法探测

  1. vim liveness-tcpsocket.yaml
  2. apiVersion: v1
  3. kind: Pod
  4. metadata:
  5. name: liveness-tcpsocket-pod
  6. namespace: default
  7. spec:
  8. containers:
  9. - name: liveness-tcpsocket-pod
  10. image: nginx:1.14-alpine
  11. imagePullPolicy: IfNotPresent
  12. ports:
  13. - containerPort: 80
  14. livenessProbe:
  15. tcpSocket:
  16. port: 80
  17. initialDelaySeconds: 1
  18. periodSeconds: 3
  19. restartPolicy: Always