使用Kubernetes REST API确定给定命名空间中POD上的映像拉取错误的推荐方法是什么?
我正在试图找出最可靠的方法来检测图像拉取错误以及最终其他类型的错误,这将最终阻止容器启动。k8s社区似乎对如何做到这一点存在分歧。例如,我阅读了Kubernetes存储库中的各种问题,这些问题解释了为什么不建议在pod上使用使用Kubernetes REST API确定给定命名空间中POD上的映像拉取错误的推荐方法是什么?,kubernetes,Kubernetes,我正在试图找出最可靠的方法来检测图像拉取错误以及最终其他类型的错误,这将最终阻止容器启动。k8s社区似乎对如何做到这一点存在分歧。例如,我阅读了Kubernetes存储库中的各种问题,这些问题解释了为什么不建议在pod上使用status.phase字段 关于我的用例的假设: 我只有一个集装箱吊舱 我必须能够检测图像拉取是否因任何原因失败 我是通过Kubernetes REST API来实现这一点的,所以我对kubectl解决方案不感兴趣 我只对在单个名称空间中检测这些错误感兴趣 话虽如此,以
status.phase
字段
关于我的用例的假设:
- 我只有一个集装箱吊舱
- 我必须能够检测图像拉取是否因任何原因失败
- 我是通过Kubernetes REST API来实现这一点的,所以我对
解决方案不感兴趣kubectl
- 我只对在单个名称空间中检测这些错误感兴趣
类型
、原因
和关于
字段的组合筛选出事件。例如,获取事件,然后查找(reason=Failed或reason=InspectFailed或reason=ErrImageNeverPull)和type=Warning和about.name=MyPodName
的事件。请注意,找到了特定的原因值。这是脆弱的,因为添加新原因可能会破坏此工作流
status.phase=Pending和status.startTime
,假设某个pod已挂起某个阈值,则该pod不健康。做出这样的假设似乎总是有一些未涵盖的边缘情况,例如,将阈值设置得太低
状态.containerStatuses[*].state.waiting.reason
字段以了解具体原因。这似乎是一个原因清单,但我不确定。这与#1的问题相同,因为您需要知道所有可能的原因,并确保它们是最新的