pod生命周期

  • pod起始状态为pending, 当至少有一个主要容器正常启动,则进入Running,如果Pod中有容器以失败状态结束,则进入Failed,否则为Successed。
  • Pod 在其生命周期中只会被调度一次。 一旦 Pod 被调度(分派)到某个节点,Pod 会一直在该节点运行,直到 Pod 停止或者 被终止。
  • Pod 自身不具有自愈能力。如果 Pod 被调度到某节点 而该节点之后失效,或者调度操作本身失效,Pod 会被删除;Pod 无法在节点资源 耗尽或者节点维护期间继续存活
  • 任何给定的 Pod (由 UID 定义)从不会被“重新调度(rescheduled)”到不同的节点

pod状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CaCDVhy9-1605583374466)(media/16052379397493.jpg)]

pod中容器状态

一旦调度器将 Pod 分派给某个节点,kubelet 就通过 容器运行时 开始为 Pod 创建容器。 容器的状态有三种:Waiting(等待)、Running(运行中)和 Terminated(已终止)。

  • Waiting (等待)

    如果容器并不处在 Running 或 Terminated 状态之一,它就处在 Waiting 状态,处于 Waiting 状态的容器仍在运行它完成启动所需要的操作。

  • Running(运行中)

    Running 状态表明容器正在执行状态并且没有问题发生。 如果配置了 postStart 回调,那么该回调已经执行完成。

  • Terminated(已终止)
    处于 Terminated 状态的容器已经开始执行并且或者正常结束或者因为某些原因失败。如果容器配置了 preStop 回调,则该回调会在容器进入 Terminated 状态之前执行。

容器重启策略restartPolicy:

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

探针类型有三种:

ExecAction、TCPSocketAction、HTTPGetAction

强制终止Pod

默认情况下,所有的删除操作都会附有 30 秒钟的宽限期限.kubectl delete 命令支持 --grace-period= 选项 --force参数发起强制删除请求,将宽限期限强制设置为 0 意味着立即从 API 服务器删除 Pod

失效Pod的垃圾回收

对于已失败的 Pod 而言,对应的 API 对象仍然会保留在集群的 API 服务器上,直到 用户或者控制器进程显式地 将其删除。
控制器会在Pod个数超出所配置的阈值 (根据 kube-controller-manager 的 terminated-pod-gc-threshold 设置)时 删除已终止的 Pod(阶段值为 Succeeded 或 Failed)

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:设计师小姐姐 返回首页