一、重启策略
Always
:当容器终止退出后,总是重启容器,默认策略。OnFailure
:当容器异常退出(退出状态码非 0)时,才重启容器。Never
:当容器终止退出,从不重启容器。
yaml 格式:
spec:
restartPolicy: Always
containers:
- image: nginx
name: web
注意:退出状态码指的是 shell 状态码,返回 0 表示正常退出,返回非 0 则代表异常退出
应用场景:
Always
:如 nginx,mysql 等需要持续运行的程序OnFailure
:定时的,短周期运行的任务,如数据库备份(cronjob),可以利用返回码Never
:应用只运行一次,如数据的离线处理,批处理等
二、健康检查:
由于 pod 不关心容器应用程序状态,所以需要配置健康检查,让 pod 去根据应用程序的状态决定 pod 是否处于 running 状态。
1.livenessProbe
(存活检查)
如果检查失败,将杀死容器,根据 Pod 的 restartPolicy 来操作。
yaml 格式:
spec:
restartPolicy: Always
containers:
- image: nginx
name: web
livenessProbe:
tcpSocket:
port: 8080
initiaDelaySceonds: 30
periodSeconds: 20
参数解释:
initiaDelaySceonds
: 容器启动后进行健康检查的等待时间periodSeconds
: 健康检查的时间间隔
2. readinessProbe
(就绪检查)
如果检查失败,Kubernetes 会把 Pod 从 service endpoints 中剔除。
支持以下三种检查方法:
httpGet
:发送 HTTP 请求,返回 200-400 范围状态码为成功。exec
:执行 Shell 命令返回状态码是 0 为成功。tcpSocket
:发起 TCP Socket 建立成功。
yaml 格式:
spec:
restartPolicy: Always
containers:
- image: nginx
name: web
readinessProbe:
tcpSocket:
port: 8080
initiaDelaySceonds: 30
periodSeconds: 20
注意:上述两种健康检查方式可以同时使用,参数也共用
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于