Kubernetes中所有可能的状态/原因列表

时间:2018-07-18 06:56:10

标签: kubernetes

我怎么知道Kubernetes中所有可能的状态和原因的列表?

现在,我正在处理Kubernetes事件。基于某些异常事件,我将对此做出反应。例如,如果某个Pod已退出或待处理,则将收到此类事件并通过电子邮件(自定义代码)得到通知。对于每个此类事件,将采取进一步的措施。

我必须知道Pod和节点的所有可能状态的列表。这将帮助我处理代码中的异常行为。如果可能的话,也最好知道可能的事件原因列表。

我正在使用Fabric8 kubernetes-client,因为我发现Java Kubernetes-client处理事件时遇到了一些问题。

我通过Google搜索的方式无法获得某些结果。

4 个答案:

答案 0 :(得分:4)

如果您需要在Kubernetes中拥有events的完整列表,则应直接查看github上的Kubernetes项目。

Hereevent.go文件的链接。

答案 1 :(得分:2)

Pod的一个阶段是Pod在其lifecycle中位置的简单概括。

该阶段并非旨在对Container或Pod状态的观测进行全面汇总, 也不打算成为一个全面的状态机。

以下是相位的可能值:

Pending Pod已被Kubernetes系统接受,但是尚未创建一个或多个Container图像。这包括计划之前的时间以及通过网络下载图像所花费的时间,这可能需要一段时间。

Running Pod已绑定到一个节点,并且所有容器都已创建。至少一个容器仍在运行,或者正在启动或重新启动。

Succeeded Pod中的所有容器已成功终止,并且不会重新启动。

Failed Pod中的所有容器都已终止,并且至少一个容器因故障而终止。也就是说,容器要么以非零状态退出,要么被系统终止。

Unknown由于某种原因,无法获得Pod的状态,通常是由于与Pod的主机通信时出错。

如果您对Pod条件下的详细数组感兴趣,建议您参考Kubernetes文档中的Pod Lifecycle并检查source code以获取剩余信息。

答案 2 :(得分:1)

我已经能够记录一些其他内容:

Terminating吊舱正在尝试终止;如果吊舱卡在这种状态下,则说明发生了某些阻碍该进程成功的事情(这可能是僵尸进程,有时甚至是已装入卷的问题)

ContainerCreating此Pod所需的容器配置出了点问题;可能是输入错误的容器名称或某些网络配置问题

Error种类繁多;可能不是特别有用。如果您经常看到这种情况,最好检查一下this doc

答案 3 :(得分:0)

k8s文档在状态,阶段,原因,条件等方面具有令人困惑的含义。实际上,Pod不具有kubectl get pods在STATUS列中返回的状态。要确认这一点,您需要查看PodStatusPodConditionContainerState对象,您将看到报告为Pod状态的信息取决于当前的ContainerState