kubernetes 学习日志 - pod生命周期

 pod启动过程介绍

       kubectl向api server发送指令,api server通过读取etcd内的配置信息调度kubelet,kubelet通过CRI执行容器环境初始化,在初始化的时候会启动一个pause基础容器,接下来执行多个initC的初始化(线性初始化),若InitC正常退出,则进入MainC。

readness:判断容器内的进程是否可被外网访问,可访问,readness检测完成则pod的状态为:running或reading

liveness:在容器运行的整个过程中,liveness检测一直持续,当liveness检测容器内的进程已经是僵尸进程(不能正常提供对外访问)但进程没有停止,系统会自动执行pod的重启或删除。

 

1、InitC容器

1.1 介绍

 1.2 作用

作用 

 作用4:InitC容器可以直接访问具有安全权限的文件,若应用程序容器需要访问这些文件,则可以通过initC读取后再写入到应用容器中。

 作用5:情景:当前一个pod中有两个容器,一个容器运行mysql应用程序,一个容器运行Apache服务,Apache服务需要连接mysql数据库,若连接mysql数据库时MySQL数据库未完全启动,则连接失败,有可能触发pod重启等,要避免这种情况,则需要mysql容器完全启动后再启动Apache服务,故可以在启动Apache容器前,通过apache的InitC容器来监听mysql是否启动成功。

1.3 init书写模板以及作用五使用示例 

 

   

特殊说明:

此外:initC的容器端口可以重复。 

删除pod需要先删除控制器,否则控制器有可能通过期望副本参数自动创建一个新得pod

2 容器探针

   2.1 介绍

探测返回结果“未知”:则容器挂死。

2.2 探测方式

   2.2.1 介绍

就绪检测失败,则会重复检测,而存活检测失败,则会重启该容器 ,重启该容器后,就绪检测和存活检测都会重新执行。

 2.2.2 就绪检测

      1)测试环境:假设镜像中path路径下的不存在index1.html文件。

     2)编写测试资源清单

   3)检测结果

    4)创建index1.html文件 ,修改检测结果

2.2.3 存活检测

    a、命令方式

         1)测试环境:容器运行后创建一个“temp/live”文件,创建完成后休眠60s,然后再将创建的文件删除,然后再休眠6分 钟。livenessproce用来检测“temp/live”是否存在,存在则探针返回0,不存在则不为零。

      2) 检测结果:容器启动前60秒,文件存在,探针检测都返回0,60s过后,文件删除,探针连续检测失败,pod连续重启。

 

   b、http方式

    c、Tcp方式

2.3 启动、退出

 2.4 相值(即pod的status状态)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值