4.1.1 介绍存活探针
liveness probe 检查容器是否仍在运行.
三种探测容器的机制:


4.1.2 创建基于 HTTP 的存活探针

模拟:
apiVersion: v1kind: Podmetadata:name: hello-livenessspec:containers:- image: jdxj/study_kubernetes:v0.2.0name: test-study-k8slivenessProbe:httpGet:path: /port: 8080ports:- containerPort: 8080protocol: TCP
4.1.3 使用存活探针
查看 pod:
- RESTARTS: 重启次数
$ kubectl get po hello-liveness
NAME READY STATUS RESTARTS AGE
hello-liveness 1/1 Running 0 2m25s
查看为什么重启:


- 137 = 128 + x (9, kill)
注意:
- 当容器被强行终止时, 会创建一个全新的容器, 而不是重启原来的容器
4.1.4 配置存活探针的附加属性
- delay=0s: 容器启动后立即探测
- timeout=1s: 容器必须在 1s 内响应
- period=10s: 每 10s 探测一次
- failure=3: 连续失败3次后重启容器
这些属性可以在 yaml 中配置:


注意:
- 一定要配置延迟
4.1.5 创建有效的存活探针
存活探针应该检查什么
- 配置特定的 url:
/health - 只是回返一个响应也会有用
- 应用程序内部对重要组件进行检查
- 不要检查外部依赖 (数据库)
保持探针轻量
- 探针的 CPU 时间计入容器的 CPU 时间配额
无须在探针中实现重试循环
Kubernetes 会重复探测, 不用自己实现.
存活探针小结
- 如果手动创建 pod, 那么当节点崩溃后, 不会在其他机器上重建
- ReplicationController 会
