1Pod生命周期
Pod遵循定义的生命周期,从该Pending 阶段开始,Running 阶段其主容器中至少有一个开始运行OK,Succeeded或 Failed阶段,根据Pod中的任何容器是否以失败终止。
1.1 Pod生命状态含义
1.1.1 Pending 该Pod已被Kubernetes集群接受,但是尚未设置一个或多个容器并使其可以运行。这包括Pod等待排定所花费的时间,以及通过网络下载容器映像所花费的时间。
1.1.2 Running Pod已绑定到一个节点,并且所有容器都已创建。至少一个容器仍在运行,或者正在启动或重新启动。
1.1.3 Succeeded Pod中的所有容器已成功终止,因此不会重新启动。
1.1.4 Failed Pod中的所有容器均已终止,并且至少一个容器因故障而终止。也就是说,容器要么以非零状态退出,要么被系统终止。
1.1.5 Unknown 由于某种原因,无法获得Pod的状态。此阶段通常是由于与Pod应该在其中运行的节点通信时发生错误而发生的。
1.1.6
Pod 的详细状态
CrashLoopBackOff: 容器退出,kubelet正在将它重启
InvalidImageName: 无法解析镜像名称
ImageInspectError: 无法校验镜像
ErrImageNeverPull: 策略禁止拉取镜像
ImagePullBackOff: 正在重试拉取
RegistryUnavailable: 连接不到镜像中心
ErrImagePull: 通用的拉取镜像出错
CreateContainerConfigError: 不能创建kubelet使用的容器配置
CreateContainerError: 创建容器失败
m.internalLifecycle.PreStartContainer 执行hook报错
RunContainerError: 启动容器失败
PostStartHookError: 执行hook报错
ContainersNotInitialized: 容器没有初始化完毕
ContainersNotReady: 容器没有准备完毕
ContainerCreating:容器创建中
PodInitializing:pod 初始化中
DockerDaemonNotReady:docker还没有完全启动
NetworkPluginNotReady: 网络插件还没有完全启动
2 Pod生成过程(一般通过yaml脚本创建)
Pods被认为是相对短暂的(而不是持久的)实体。创建Pod,为其分配一个唯一的ID(UID),并将其调度到保留它们的节点,直到终止(根据重新启动策略)或删除为止。如果一个节点死掉后,安排到该节点的Pod计划在超时后删除。
3 Pod重启策略(一般重启通过删除Pod,下面的重启策略是在触发某种条件而重启。)
支持三种RestartPolicy:
Always:只要退出就重启。
OnFailure:失败退出(exit code不等于0)时重启。
Never:只要退出就不再重启。
资源清单脚本配置重启策略
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec: