容器重启策略
Pod 的 spec
中包含一个 restartPolicy
字段,其可能取值包括以下情况:
- Always:总是重启,也是默认值
- OnFailure:容器异常退出状态码非 0 重启
- Never:从不重启
restartPolicy
适用于 Pod 中的所有容器。restartPolicy
仅针对同一节点上 kubelet
的容器重启动作。当 Pod 中的容器退出时,kubelet
会按指数回退方式计算重启的延迟(10s、20s、40s、…),其最长延迟为 5 分钟。一旦某容器执行了 10 分钟并且没有出现问题,kubelet
对该容器的重启回退计时器执行重置操作。
自定义容器启动命令
和 Docker 容器一样,K8s 中容器也可以通过 command、args 用来修改容器启动默认执行命令以及传递相关参数。但一般推荐使用 command 修改启动命令,使用 args 为启动命令传递参数。
apiVersion: v1 kind: Pod metadata: name: redis labels: app: redis spec: containers: - name: redis image: redis:5.0.10 command: ["redis-server"] #用来指定启动命令 args: ["--appendonly yes"] # 用来为启动命令传递参数 #args: ["redis-server","--appendonly yes"] # 单独使用修改启动命令并传递参数 #args: # 另一种语法格式 # - redis-server # - "--appendonly yes" imagePullPolicy: IfNotPresent restartPolicy: Always