(一)POD的生命周期:
Pending ---- running ---- succeded ----failed ---unkown
(二)应用自我修复:监控检查+重启策略
配置了pod的健康检查之后,一旦检查失败,k8s就会将容器所在的pod进行重启
(1)pod生命周期中的重要行为
1)初始化容器
2)容器健康探测:lveness、Readiness
liveness和readiness作为k8s的探针,可以对应用进行健康探测。
两者支持的探测方式相同。主要的探测方式支持http探测,执行命令探测,以及tcp探测。
(2)pod的重启策略(restartpolicy)
1)always:容器‘失效’时,自动重启改容器,也是默认值
(一旦某个容器处于退出状态,就对其执行重启操作。即使正常退出也会进行重启;只要pod‘挂掉’了,就会进行重启)
onfailure:容器终止运行并且容器的退出码不为0时(正常退出),重启改容器。
(在遇到故障时,服务将重新启动;表示只有在容器异常退出,即退出码不为0时,才会对其进行重启操作。这种面向的范围比较窄,只针对异常退出)
never:从不重启容器。
2)每种控制器对pod地重启策略要求如下:
RC和daemonset: 必须设置为always,需要确保改容器的持续运行
job:never或者onfailure,确保容器执行完成后不再重启。
(3)如果pod资源出现故障
通过探针监控到pod不健康。首先控制器会尝试重启pod,如果重启一直有问题的话,会基于某种策略去重新部署或者重新编排。



