前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s错误CrashLoopBackOff

k8s错误CrashLoopBackOff

作者头像
SRE运维实践
发布2020-03-06 17:03:33
12.1K0
发布2020-03-06 17:03:33
举报
文章被收录于专栏:SRE运维实践

CrashLoopBackoff

在创建一个pod之后,出现一个报错,都是按照套路来的,怎么可能会报错呢。。

查看一下相关的日志看看(kubectl describe pods test-pod):

看最后的事件就是不停的重启失败的容器,查看一下容器的日志:

发现容器没有任何日志,查看一下容器是否启动:

发现容器是没有日志的,而且容器已经启动了,但是容器是正常退出的,毕竟状态码为0,查看messages日志,看看有没有其他的报错信息:

代码语言:javascript
复制
Feb 28 04:50:27 dockermaster kubelet: E0228 04:50:27.861552    6256 pod_workers.go:190] Error syncing pod 68581c76-5a06-11ea-8ebf-ba810801ac07 ("test-pod_default(68581c76-5a06-11ea-8ebf-ba810801ac07)"), skipping: [failed to "StartContainer" for "container-1" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=container-1 pod=test-pod_default(68581c76-5a06-11ea-8ebf-ba810801ac07)"Feb 28 04:50:27 dockermaster kubelet: , failed to "StartContainer" for "container-2" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=container-2 pod=test-pod_default(68581c76-5a06-11ea-8ebf-ba810801ac07)"

发现有报错信息error syncing pod,启动容器之后失败,从而形成了崩溃循环。

此报错信息表示:容器进程崩溃或者退出,也就是容器没有在后台运行的进程,从而导致此种情况,有的时候是容器报错了,例如mysql启动的时候,需要添加环境变量,如果没添加,那么也会出现这种报错,无限的重启循环。

从而可以修改创建的yaml文件,在其中直接添加相关运行的命令:

删除原来的,进行重新创建:

mysql进程退出的如下图所示:

在这里可以看到相关的日志,可以查看到环境变量的缺失,而且在查看容器的时候,可以看到容器的退出码为1,表示容器的进程崩溃。

查看messages日志可以看到kubelet报错是类似的:

代码语言:javascript
复制
Feb 28 05:18:35 dockermaster kubelet: E0228 05:18:35.860866    6256 pod_workers.go:190] Error syncing pod 2ceaa659-5a12-11ea-8ebf-ba810801ac07 ("test-pod_default(2ceaa659-5a12-11ea-8ebf-ba810801ac07)"), skipping: failed to "StartContainer" for "container-1" with CrashLoopBackOff: "Back-off 2m40s restarting failed container=container-1 pod=test-pod_default(2ceaa659-5a12-11ea-8ebf-ba810801ac07)"
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE运维实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档