Pod对象自从其创建开始至其终止退出的时间范围称为其生命周期。在这段时间中,Pod会处于多种不同的状态,并执行一些操作;其中,创建主容器(main container)为必需的操作,其他可选的操作还包括运行初始化容器(init container)、容器启动后钩子(post start hook)、容器的存活性探测(liveness probe)、就绪性探测(readiness probe)以及容器终止前钩子(pre stop hook)等,这些操作是否执行则取决于Pod的定义。

Pod的相位

无论是用户手动创建还是通过Deployment等控制器创建,Pod对象总是应该处于其生命进程中以下几个相位(phase)之一。

  • Pending:API Server创建了Pod资源对象并已存入etcd中,但它尚未被调度完成,或者仍未处于从仓库下载镜像的过程中。
  • Running:Pod已经被调度至某节点,并且所有容器都已经被kubelet创建完成。
  • Succeeded:Pod中的所有容器都已经成功终止并且不会重启。
  • Failed:所有容器都已经终止,但至少有一个容器终止失败,即容器返回了非0值的退出状态或已经被终止。
  • Unknown:API Server无法正常获取到Pod对象的状态信息,通常是由于其无法与所在工作节点的kubelet通信所致。

Pod的相位是在其生命周期中的宏观概述,而非对容器或Pod对象的综合汇总,而且相位的数量和含义被严格界定,它仅包含上面列举的相位值。

Pod 的创建过程

Pod是Kubernetes的基础单元,理解它的创建过程对于了解系统运作大有裨益。

1)用户通过kubectl或其他API客户端提交Pod Spec给API Server。

2)API Server尝试着将Pod对象的相关信息存入etcd中,待写入作操作执行完成,API Server即会返回确认信息至客户端。

3)API Server开始反映etcd中的状态变化。

4)所有的Kubernetes组件均使用“watch”机制来跟踪检查API Server上的相关的变动。

5)kube-scheduler(调度器)通过其“watcher”觉察到API Server创建了新的Pod对象但尚未绑定至任何工作节点。

6)kube-scheduler为Pod对象挑选一个工作节点并将结果信息更新至API Server。

7)调度结果信息由API Server更新至etcd存储系统,而且API Server也开始反映此pod对象的调度结果。

8)Pod被调度到的目标工作节点上的kubelet尝试在当前节点上调用Docker启动容器,并将容器的结果状态回送至API Server。

9)API Server将Pod状态信息存入etcd系统中。

10)在etcd确认写入操作成功完成后,API Server将确认信息发送至相关的kubelet,事件将通过它被接受。

最新文章

  1. IOS开发基础知识--碎片34
  2. Hdu5093 Battle ships 二分图
  3. MySql的连接查询
  4. 是时候放弃sublime了
  5. switch parser.p4源码
  6. hdu1166敌兵布阵_线段树单点更新
  7. [C#]『Barrier』任务并行库使用小计
  8. 信息增益(IG,Information Gain)的理解和计算
  9. spark提交任务的流程
  10. 文档流 css中间float clear和布局
  11. 二分法-C++
  12. 【 js 算法类】数组去重
  13. 一篇文章学会Spring4.0
  14. 《Linux命令行与shell脚本编程大全》第二十二章 gawk进阶
  15. golang核心Goroutine和channel
  16. vue组件通信新姿势
  17. ES6/ES2015的一些特性的简单使
  18. 如何安装Visio
  19. C# 自己动手实现Spy++(二)
  20. idea窗口下方滚动条不明显设置

热门文章

  1. Unity之Android端权限申请
  2. MyBatis使用四(查询详解)
  3. 腾讯出品小程序自动化测试框架【Minium】系列(五)API详解(中)
  4. Node.js 应用全链路追踪技术——全链路信息存储
  5. 文献阅读01:由I类HLA转录缺失导致的联合免疫治疗的获得性癌症耐药性
  6. Docker命令的自动补齐
  7. Selenium Webdriver驱动自管理
  8. IDEA创建新的模块springboot
  9. 免杀之:C# XOR Shellcode
  10. Apache Hudi 负载类Payload使用案例剖析