更新时间:2022-11-10 GMT+08:00

CCE启动实例失败时的重试机制是怎样的?

CCE是基于原生Kubernetes的云容器引擎服务,完全兼容Kubernetes社区原生版本,与社区最新版本保持紧密同步,完全兼容Kubernetes API和Kubectl。

在Kubernetes中,Pod的spec中包含一个restartPolicy字段,其取值包括:Always、OnFailure和Never,默认值为:Always。

  • Always:当容器失效时,由kubelet自动重启该容器。
  • OnFailure:当容器终止运行且退出不为0时(正常退出),由kubelet自动重启该容器。
  • Never:不论容器运行状态如何,kubelet都不会重启该容器。

restartPolicy适用于Pod中的所有容器。

restartPolicy仅针对同一节点上kubelet的容器重启动作。当Pod中的容器退出时,kubelet 会按指数回退方式计算重启的延迟(10s、20s、40s...),其最长延迟为5分钟。 一旦某容器执行了10分钟并且没有出现问题,kubelet对该容器的重启回退计时器执行重置操作。

每种控制器对Pod的重启策略要求如下:

  • Replication Controller(RC)和DaemonSet:必须设置为Always,需要保证该容器的持续运行。
  • Job:OnFailure或Never,确保容器执行完成后不再重启。