kubernetes pod status

1. 状态说明

在整个pod的生命周期分四个阶段, 每个阶段都是对pod的简单的总结, 下面是pod可能处于的阶段

  • Pending: pod被k8s系统接受,但由于某种原因而未完全运行,如正在下载镜像文件
  • Running: pod已运行于某一节点上(container里的进程处于启动或重启状态时也属于这一阶段)
  • Succeeded: pod里所有的containers均已terminated
  • Failed: pod里至少有一个container未正常terminated
  • Unknown: 由于未知原因无法获取pod状态,比如node无法连接

每一个阶段都有更详细的conditions信息, 它代表了当前pod是否处于某一个condition(PodScheduled,Ready,Initialized,Unschedulable),"true" 表示处于,"false"表示不处于

  • PodInitialized PodConditionType = "Initialized"
  • PodReady PodConditionType = "Ready"
  • PodScheduled PodConditionType = "PodScheduled"
  • PodReasonUnschedulable PodConditionType = "Unschedulable"

注意 当阶段为Running, condition中Ready状态为True时, 即表示pod中的容器可以提供服务了

2. 在pod创建过程中, 通常会伴随着各种事件的产生, 可以使用curl监控pod状态得到, k8s事件的种类总共只有4种

  • Added EventType = "ADDED"
  • Modified EventType = "MODIFIED"
  • Deleted EventType = "DELETED"
  • Error EventType = "ERROR"

下图为pod产生到运行正常时的状态变化

image

可以看到第2行的type由ADDED变为MODIFIED, 78行的状态由Pending变为Running, 88行的状态由False变为True

其它的变化有第2行、12行

下图为pod从正常运行到被删除的状态变化

image

可以看到在第一个文件到最后一个文件的变化, 第2行的type由MODIFIED变为DELETED, 90行的状态由True变为False

3. 监控pod的状态变化方法

直接在上url后追加所需要查询的内容,方法使用GET 事例,返回json

curl -XGET http://10.110.200.24:8080/api/v1/watch/namespaces/dev/pods/devo-ui-twnb5

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • dashboard 监控项: 各个k8s集群所有pod not running的状态,监控pod的CrashLoo...
    骆的沙阅读 14,054评论 4 3
  • pod从创建到最后的创建成功会分别处于不同的阶段,在源码中用PodPhase来表示不同的阶段: 运行中(PodRu...
    shinwing阅读 33,631评论 1 10
  • 1.Pod Pod是k8s的最基本的操作单元,包含一个或多个紧密相关的容器,类似于豌豆荚的概念。一个Pod可以被一...
    jony456123阅读 12,157评论 0 5
  • 1、基础架构 1.1 Master Master节点上面主要由四个模块组成:APIServer、scheduler...
    阿斯蒂芬2阅读 13,720评论 0 44
  • 最近一条『全球黑莓手机市场份额已降至0%』的新闻,突然的让我不觉得有些感想,那个曾经最有情怀的手机,现如今这"情怀...
    燚随风阅读 4,889评论 2 8