Kubernetes中Pod的生命周期

Kubernetes (希腊语"舵手" 或 "飞行员",通常称为K8s,K8s是将8个字母“ubernete”替换为“8”的缩写) 是用于自动部署、扩展和管理容器化(containerized)应用程序的开源系统。今天讲一讲Kubernetes的核心组件Pod的生命周期。

k8s中pod的生命周期大致可分为以下几个阶段:

1.当kubectl创建指令下达到api接口,被调度到kubelet上,kubelet首先调用CRI完成容器环境的初始化。

2.开始进入pod的生命周期,pod开始创建。

3.首先进行Pause基础容器创建,Pause负责网络和存储卷的共享等基础操作。

4.如果定义了Init容器,先进行Init容器(Init C)的创建,Init容器叫初始化容器,可以做一些初始化的操作,比如生成一些应用容器需要的文件。Init C只是用来初始化的,在初始化完成后Init C就会死亡,并不会跟随一直跟随pod的生命周期存在。Init C可以是多个,它不是必须的,也可以没有。多个Init C不能并行运行,一个Init C完成后,才能进行下一个Init C的构建。如果Init容器失败,k8s会不断重启该Pod,直到Init容器运行成功为止。然而,如果pod对应的restartPolicy为Never,那么它不会重启。

5.开始创建主容器(Main C)

6.主容器Main C运行过程中,如果定义了start操作,首先进行一个start操作。

7.然后如果定义了readiness就绪检测,就执行readiness就绪检测,readiness检测成功完成后,pod才会显示running,才会对外提供服务。

8.如果定义了liveness存活检测,也会同时开始执行,如果liveness检测失败,kubelet杀死该Pod,然后根据重启策略restartPolicy决定是否对pod执行重启。若容器中不包含liveness探针,则kubelet认为该pod的liveness探针返回值永远是success。liveness存活检测是持续过程,一直持续到stop操作完成之后,Main C结束之前。

9.主容器Main C结束退出时,如果定义了stop操作,则先进行stop操作,stop操作完成以后才允许退出。

 

                                                                                                                                                                                                                                      2021年春节   于西安

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值