登录
首页 >  Golang >  Go问答

使用编程检测 pod 是否处于 crashloopbackoff 状态

来源:stackoverflow

时间:2024-02-25 15:36:22 429浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《使用编程检测 pod 是否处于 crashloopbackoff 状态》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

有没有办法以编程方式确定 pod 是否处于 crashloopbackoff 状态? 我尝试了以下方法

pods,err :=  client.CoreV1().Pods(namespace).List(context.TODO(), metav1.ListOptions{})
if err != nil { 
    return err
}
for _, item := range pods.Items {
   log.Printf("found pod %v with state %v  reason %v and phase %v that started at %v",
                item.Name, item.Status.Message, item.Status.Reason, item.Status.Phase, item.CreationTimestamp.Time)
}

然而,这只是打印空白的状态和原因,但它打印阶段。


正确答案


为了澄清,我正在发布社区 wiki 答案。

它隐藏在ContainerStateWaiting.Reason中:

kubectl get po -o jsonpath='{.items[*].status.containerStatuses[*].state.waiting.reason}'

尽管请注意,它只是间歇性出现在那里,因为它是容器的间歇状态;也许更具编程性的方法是检查 restartcounterror 状态

另请参阅 this repository

今天关于《使用编程检测 pod 是否处于 crashloopbackoff 状态》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>