Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Kubernetes REST API确定给定命名空间中POD上的映像拉取错误的推荐方法是什么?_Kubernetes - Fatal编程技术网

使用Kubernetes REST API确定给定命名空间中POD上的映像拉取错误的推荐方法是什么?

使用Kubernetes REST API确定给定命名空间中POD上的映像拉取错误的推荐方法是什么?,kubernetes,Kubernetes,我正在试图找出最可靠的方法来检测图像拉取错误以及最终其他类型的错误,这将最终阻止容器启动。k8s社区似乎对如何做到这一点存在分歧。例如,我阅读了Kubernetes存储库中的各种问题,这些问题解释了为什么不建议在pod上使用status.phase字段 关于我的用例的假设: 我只有一个集装箱吊舱 我必须能够检测图像拉取是否因任何原因失败 我是通过Kubernetes REST API来实现这一点的,所以我对kubectl解决方案不感兴趣 我只对在单个名称空间中检测这些错误感兴趣 话虽如此,以

我正在试图找出最可靠的方法来检测图像拉取错误以及最终其他类型的错误,这将最终阻止容器启动。k8s社区似乎对如何做到这一点存在分歧。例如,我阅读了Kubernetes存储库中的各种问题,这些问题解释了为什么不建议在pod上使用
status.phase
字段

关于我的用例的假设:

  • 我只有一个集装箱吊舱
  • 我必须能够检测图像拉取是否因任何原因失败
  • 我是通过Kubernetes REST API来实现这一点的,所以我对
    kubectl
    解决方案不感兴趣
  • 我只对在单个名称空间中检测这些错误感兴趣
话虽如此,以下是我看到人们解决这个问题的方法:

  • 获取给定命名空间的所有事件,使用
    类型
    原因
    关于
    字段的组合筛选出事件。例如,获取事件,然后查找
    (reason=Failed或reason=InspectFailed或reason=ErrImageNeverPull)和type=Warning和about.name=MyPodName
    的事件。请注意,找到了特定的原因值。这是脆弱的,因为添加新原因可能会破坏此工作流

  • 列出给定名称空间中的所有pod,并检查
    status.phase=Pending和status.startTime
    ,假设某个pod已挂起某个阈值,则该pod不健康。做出这样的假设似乎总是有一些未涵盖的边缘情况,例如,将阈值设置得太低

  • 列出给定命名空间中的所有POD,并检查
    状态.containerStatuses[*].state.waiting.reason
    字段以了解具体原因。这似乎是一个原因清单,但我不确定。这与#1的问题相同,因为您需要知道所有可能的原因,并确保它们是最新的

  • 这些解决方案各有利弊。可能还有其他我不知道的解决方案。检测这样的问题似乎是一个非常常见的用例。我知道可能有很多复杂和边缘的情况,但我很惊讶地发现,要找到一个简洁的答案是多么困难。有人能解释一下什么方法是解决这个问题最可靠、最可靠的方法吗