当前位置:   article > 正文

Pod的生命周期 ·『云原生品鉴与布道』·_一个pod的生命周期

一个pod的生命周期

所谓的pod生命周期就是说pod这个资源对象从开始创建到结束整个的一个流程,在流程当中会经历如下阶段。

1、启动pause容器;   (/ pɔːz/ 暂停)

2、初始化容器(initContainers);

3、创建主容器(containers)包括: 

      3.1、容器启动后钩子;

      3.2、启动探测、就绪性探测,存活性探测;

      3.3、容器停止前钩子。

 

pause容器

重要概念:Pod内的容器都是平等的关系,共享Network Namespace、共享文件

pause容器的最主要的作用:创建共享的网络名称空间,以便于其它容器以平等的关系加入此网络名称空间;

pause进程是pod中所有容器的父进程(即第一个进程);

 

Init容器

Init容器就是做初始化工作的容器。可以有一个或多个,如果多个按照定义的顺序依次执行,只有所有的执行完后,主容器才启动。由于一个Pod里的存储卷是共享的,所以Init Container里产生的数据可以被主容器使用到,Init Container可以在多种K8S资源里被使用到,如DeploymentDaemonSet, StatefulSetJob等,但都是在Pod启动时,在主容器启动前执行,做初始化工作。

 

主容器

1)容器钩子

初始化容器启动之后,开始启动主容器,在主容器启动之前有一个post start hook(容器启动后钩子)和pre stop hook(容器结束前钩子)

PostStart

该钩子在容器被创建后立刻触发,通知容器它已经被创建。如果该钩子对应的hook handler执行失败,则该容器会被杀死,并根据该容器的重启策略决定是否要重启该容器,这个钩子不需要传递任何参数

PreStop

该钩子在容器被删除前触发,其所对应的hook handler必须在删除该容器的请求发送给Docker daemon之前完成。在该钩子对应的hook handler完成后不论执行的结果如何,Docker daemon会发送一个SGTERN信号量给Docker daemon来删除该容器,这个钩子不需要传递任何参数

2)容器探针

livenessProbe(存活性探测)

指示容器是否正在运行。如果存活性探测失败,则kubelet会杀死容器,并且容器将受到其重启策略的影响。如果容器不提供存活探针,则默认状态为Success。

readinessProbe(就绪性探测

指示容器是否准备好服务请求。如果就绪性探测失败,端点控制器将从与 Pod匹配的所有Service的端点中删除该Pod的IP地址。初始延迟之前的就绪状态默认为 Failure。如果容器不提供就绪探针,则默认状态为 Success

 

k8s三种探针的区别?

启动探针失败,Kubernetes 将会认为容器启动失败,并可能会根据配置进行重试或者标记容器为失败状态。工作周期:一次性

就绪探针失败,Kubernetes 将会认为容器尚未准备好处理流量,因此不会将流量路由到该容器。工作周期:定期

存活探针失败,Kubernetes 将会认为容器出现了问题,并且可能需要重启容器来恢复其正常状态。工作周期:定期

 --------------------------------

在整个生命周期中,Pod会出现5种状态(相位),分别如下

  • 挂起(Pending:apiserver已经创建了pod资源对象,但它尚未被调度完成或者仍处于下载镜像的过程中
  • 运行中(Running:pod已经被调度至某节点,并且所有容器都已经被kubelet创建完成
  • 成功(Succeeded:pod中的所有容器都已经成功终止并且不会被重启
  • 失败(Failed:所有容器都已经终止,但至少有一个容器终止失败,即容器返回了非0值的退出状态
  • 未知(Unknown:apiserver无法正常获取到pod对象的状态信息,通常由网络通信失败所导致

 

考虑到 Pod 可以包含多个容器,每个容器的状态都会影响 Pod 的状态。例如,如果一个 Pod 中有两个容器,其中一个容器处于 Running 状态,另一个容器处于 Failed 状态,那么该 Pod 的状态就是 Failed。

 =================================

参考:

https://www.cnblogs.com/guangdelw/p/17143591.html  Pod生命周期

kubernetes pod的生命周期 - 掘金     kubernetes pod的生命周期

了解pod和pod的生命周期-这一篇文章就够了-阿里云开发者社区   

https://www.cnblogs.com/Lqdream/p/16993700.html   k8s原理之-Pod状态和生命周期管理

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/505997
推荐阅读
相关标签
  

闽ICP备14008679号