Daily Archives: 2020年6月13日

Pod生命周期

Pod容器 Init Container: 支持应用容器的全部字段与特性,包括资源限制,存储券和安全设置 由于需要在pod就绪之前运行完成,所以不支持reaadinessProbe 定义多个init容器,它们会按定义顺序执行 init容器失败,如果restartPolicy不为Nerver,则会不断重启,直到成功为止 作用: 具有与应用容器分离的单独镜像,可包含不建议在生产镜像中包含的实用工具 应用程序镜像基于它可以分离出创建和部署的角色 使用linux namespace,相对应用容器来说有不同的文件系统视图,因此有访问secret的权限,应用容器则不能 可以阻塞或延迟应用容器的启动 Pod Hook 如果postStart,postStop失败,会杀死容器 postStart:容器创建后立即执行,不保证钩子在容器EntryPoint之前运行。主要用于资源部署、环境准备等。如果运行时间过长以至不能运行或者挂起容器将无法到达Running状态 preStop:容器终止之前立即调用,阻塞,同步的,必须在删除容器调用发出之前完成。主要用于优雅关闭应用程序、通知其它系统等。如果执行期间被挂起,pod将永远在running状态,并不会到达failed状态 健康检查 Pod状态 PodStatus.phase字段 挂起(Pending)信息已提交集群,但没有被调度器调度到合适的节点或pod镜像正在下载 运行中(Running)已绑定到一个节点,所有容器已被创建。至少一个正在运行,或者处理启动或重启状态 成功(Successed)所有容器成功终止,并且不会重启 失败(Failed)所有容器已终止,并且至少一个容器是因为失败终止,也就是说容器以非0状态退出或被系统终止 未知(UnKnow)无法获得状态,通常是主机通信失败导致的 PodStatus.PodCondition 描述当前Status的具体原因 PodScheduled:pod已调度到某节点 ContainersReady:pod内所有容器已就绪 Initialized:所有的init容器都已成功完成 Unschedulable Ready:可以提供服务,并且应该被添加到对应服务的负载均衡池中 Pod 资源定义(CPU、内存) 调度 Volume Projected Volume 投射数据卷 … Continue reading

Posted in Kubernetes | Tagged , | Leave a comment