首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Kubernetes 容器退出状态码参考指南

如果您是 Kubernetes 用户,容器故障是 pod 异常最常见的原因之一,了解容器退出码可以帮助您在排查时找到 pod 故障的根本原因。...以下是容器使用的最常见的退出码: 退出码 名称 含义 0 正常退出 开发者用来表明容器是正常退出 1 应用错误 容器因应用程序错误或镜像规范的错误引用而停止 125 容器未能运行 docker run...这通常是用于运行容器的持续集成脚本缺少依赖项或错误的原因。 如果容器退出码 126 终止怎么办?...该退出码可能的原因是: 容器引擎停止容器时触发,例如使用 docker stop 或 docker-compose down 命令时; 由 Kubernetes 将 Pod 设置为 Terminating...每当 pod 容器发生故障,或者 Kubernetes 指示 pod 出于任何原因终止时,容器将关闭并记录退出代码。识别退出代码可以帮助您了解 pod 异常的根本原因。

19210

容器和 Kubernetes 退出码完整指南

如果您是 Kubernetes 用户,容器故障是 pod 异常最常见的原因之一,了解容器退出码可以帮助您在排查时找到 pod 故障的根本原因。...以下是容器使用的最常见的退出码: 退出码名称含义0正常退出开发者用来表明容器是正常退出1应用错误容器因应用程序错误或镜像规范的错误引用而停止125容器未能运行docker run 命令没有执行成功126...(SIGTERM)容器收到即将终止的警告,然后终止255退出状态超出范围容器退出,返回可接受范围之外的退出代码,表示错误原因未知 下面我们将解释如何在宿主机和 Kubernetes 对失败的容器进行故障排除...这通常是用于运行容器的持续集成脚本缺少依赖项或错误的原因。 如果容器退出码 126 终止怎么办?...该退出码可能的原因是: 容器引擎停止容器时触发,例如使用 docker stop 或 docker-compose down 命令时; 由 Kubernetes 将 Pod 设置为 Terminating

4.4K20

SIGTERM:Linux 容器的优雅终止退出代码 143)

如果过程不在 Docker 容器,通过 SIGTERM 信号终止容器在其日志显示退出码 143。...在某些情况下,即使发送了 SIGKILL,内核也可能无法终止进程。如果一个进程正在等待网络或磁盘 I/O,而内核无法阻止它,它就会成为僵尸进程。需要重新启动才能从系统清除僵尸进程。...退出码 143 和 137 与 Docker 容器的 SIGTERM 和 SIGKILL 一一对应: Docker 退出码 143 – 表示容器收到底层操作系统的 SIGTERM Docker 退出码...每当 pod 终止时,默认情况下,Kubernetes 都会向 pod 容器发送 SIGTERM 信号。 由于扩容或部署操作,Pod 通常会自动终止。...每当 Kubernetes 出于任何原因需要终止 pod 时,它都会向 pod 运行的容器发送 SIGTERM。

10.2K20

Pod Terminating原因追踪系列之二】exec连接未关闭导致的事件阻塞

前一阵有客户docker18.06.3集群中出现Pod卡在terminating状态的问题,经过排查发现是containerd和dockerd之间事件流阻塞,导致后续事件得不到处理造成的。...对于本文中提到的问题,在docker19已经得到解决,但docker18无法直接升级到docker19,因此本文在结尾参考docker19给出了一种简单的解决方案。...删除不掉Pod 相信大家在解决现网问题时,经常会遇到Pod卡在terminating不动的情况,产生这种情况的原因有很多,比如【Pod Terminating原因追踪系列】之 containerd 中被漏掉的...png] ContainerExecStart方法第二个参数为exec的id值,因此可以使用gdb查找对应地址内容,查看其参数的execId和terminating Pod容器的exexId(docker...的集群无法直接升级到docker19,因为docker会持久化数据到硬盘上,而docker19不支持docker18的持久化数据。

2.5K108

POD异常排障

pod 状态: Pending(悬决) Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。...Terminated(已终止Pod 处于 Terminated 状态的容器已经开始执行并且或者正常结束或者因为某些原因失败。。...Failed(失败) Pod 的所有容器都已终止,并且至少有一个容器是因为失败终止。也就是说,容器以非 0 状态退出或者被系统终止。 Unknown(未知) 因为某些原因无法取得 Pod 的状态。...事件类 Back-off restarting failed docker container 正在重启异常的 Docker 容器 fit failure on node: Insufficient cpu...Liveness probe failed 容器健康检查失败 Error syncing pod, skipping 容器进程崩溃或退出 pod 处于以上情况,可通过kubectl describe

1K20

【重识云原生】第六章容器6.4.2.1节——pod详解

注意:不要将重新启动Pod容器与重新启动Pod混淆。POD不是一个进程,而是一个运行容器的环境。Pod一直存在直到被删除为止。         pod本身无法自我修复。...在Pod启动过程,Init容器会按顺序在网络和数据卷初始化之后启动。每个容器必须在下一个容器启动之前成功退出。...除了readinessProbe, 因为Init容器无法定义不同于完成( completion) 的就绪( readiness) 之外的其他状态。这会在验证过程强制执行。...probe) pod终止过程  pod终止过程: 用户向apiServer发送删除pod对象的命令 apiServcerpod对象信息会随着时间的推移而更新,在宽限期内(默认30s),pod被视为...失败(Failed): Pod的所有容器都被终止了,但至少有一个容器退出失败(即退出码不为 0 或者被系统终止)。

2.1K11

Pod Terminating原因追踪系列之三】让docker事件处理罢工的cancel状态码

本篇将再介绍一种造成Pod Terminating的原因,即处理事件流的方法异常退出导致的Pod Terminating,当docker版本在19以下且containerd进程由于各种原因(比如OOM)...对于本文中提到的问题,在docker19已经得到解决,但由于docker18无法直接升级到docker19,且dockerd19修复的改动较大,难以cherry-pick到docker18,因此本文在结尾参考...task事件没有得到处理造成的Pod Terminating,随便起一个容器(例如CentOS),并通过exec进入容器退出,这时去查看docker的堆栈(发送SIGUSR1信号给dockerd),如果发现如下有一条堆栈信息...是否和CentOS容器的execID相等的方式来确认,通过返回结果发现exexID相等,说明虽然我们的exec退出了,但是dockerd却没有正确处理来自containerd的exit事件。...并查看Pod状态,发现Pod会一直卡在Terminating状态。

1.9K96

集群故障处理之处理思路以及听诊三板斧(三十四)

-p, --previous 输出Pod中曾经运行过,但目前已终止容器的日志。 -c, --container 容器名称。 --since 仅返回相对时间范围(如5s、2m或3h)内的日志。...: 在运行Pod 上额外起一个新容器, 并将新容器加入到目标容器的 pid, network, user以及 ipc namespace, 这时我们就可以在新容器中直接用 netstat, tcpdump...解决方案有: 添加工作节点 移除部分Pod以释放资源 降低当前Pod的资源限制 Pod一直处于Waiting状态,经诊断为镜像拉取失败 如果一个pod卡在Waiting状态,则表示这个pod已经调试到节点上...),也可以考虑适当调整超时时间 尝试使用docker pull 来验证镜像是否可以正常拉取 Pod一直处于CrashLoopBackOff状态,经检查为健康检查启动超时而退出 CrashLoopBackOff...状态说明容器曾经启动了,但又异常退出了。

57610

集群故障处理之处理思路以及听诊三板斧(三十三)

-p, --previous 输出Pod中曾经运行过,但目前已终止容器的日志。 -c, --container 容器名称。 --since 仅返回相对时间范围(如5s、2m或3h)内的日志。...: 在运行Pod 上额外起一个新容器, 并将新容器加入到目标容器的 pid, network, user以及 ipc namespace, 这时我们就可以在新容器中直接用 netstat, tcpdump...解决方案有: 添加工作节点 移除部分Pod以释放资源 降低当前Pod的资源限制 Pod一直处于Waiting状态,经诊断为镜像拉取失败 如果一个pod卡在Waiting状态,则表示这个...),也可以考虑适当调整超时时间 尝试使用docker pull 来验证镜像是否可以正常拉取 Pod一直处于CrashLoopBackOff状态,经检查为健康检查启动超时而退出...CrashLoopBackOff 状态说明容器曾经启动了,但又异常退出了。

82830

kubernetes的基本单位Pod详解

一旦开始在集群节点中创建 Pod,首先就会进入 Pending 状态,只要 Pod 的所有容器都已启动并正常运行,则 Pod 接下来会进入 Running 状态,如果 Pod 被要求终止,且所有容器终止退出时的状态码都为...重启策略对 Pod 状态的影响如下: 假设有1个运行Pod,包含1个容器容器退出成功后。 Always:重启容器Pod 状态仍为 Running。...OnFailure:Pod 状态变为 Completed。 Never:Pod 状态变为 Completed。 假设有1个运行Pod,包含1个容器容器退出失败后。...假设有1个运行Pod,包含2个容器,第1个容器退出失败后。 Always:重启容器Pod 状态仍为 Running。 OnFailure:重启容器Pod 状态仍为 Running。...Pod 的进程接收到 TERM 信号。 如果宽限时间过期,Pod 的进行仍在运行,则会被 SIGKILL 信号终止

1.2K10

Kubernetes-核心资源之Pod

控制使用Pod模板创建实际的Pod,下面是Pod模板的一个示例: ? 2.1 重启策略 在Pod容器可能会由于异常等原因导致其终止退出,Kubernetes提供了重启策略以重启容器。...3、Pod的基本操作 3.1 创建Pod 按照Kubernetes的设计,Pod一般不独立进行创建,这是因为独立创建的Pod没有自愈能力,也就说在Pod异常终止后,无法进行自动重启和重新调度。...Succeeded: 在Pod的所有的容器都已经被成功的终止,并且不会再重启。 Failed: 在Pod中所有容器都已经被终止,并且至少有一个容器是非正常终止的。...即,容器以非零状态退出或者被系统强行终止的。 Unknown: 由于某些原因,Pod不能被获取,典型的情况是在与Pod的主机进行通信中发生了失败。...Always:当容器终止退出后,总是会重启容器,这是默认值; OnFailure:只有在容器非正常退出时,才会重启容器。 Never:不管容器是否正常退出,都不再重启容器。 5、参考材料 1.

1K50

Docker stop或者Docker kill为何不能停止容器

2、在上一步,如果等待超时,那么Docker将使用Docker kill 方式试图终止容器 二、Docker Kill主要流程 1.Docker引擎通过containerd使用SIGKILL发向容器主进程...在这种状态,信号是无法将进程唤醒;只有等待进程自己从D状态返回。而且在常规内核,如果某个进程一直处于D状态,那么理论上除了重启系统那么没有什么方法或手段将它从D接回。...从上面解释Docker kill第二步可以看到一旦容器主进程或者子进程处于D状态,那么Docker将等待,一直等到所有容器主进程和其子进程都退出后才返回,那么此时Docker kill就卡住了。...3.在一定时间后容器子进程从D状态恢复,它们退出了,containerd上报容器退出,引擎清理资源,此时Docker ps看到容器才是退出状态 三、在docker pidnamespace共享特性下容器对信号的响应...在k8s的pod下常见的场景,pause容器和其他容器共享pid namespace(pause容器pidnamespace共享给相同pod下其他容器使用)。

3.7K30

从0到1搭建k8s(四)——深入探索Pod

通过这样设置,在Pod启动的容器的hosts就会默认带上这个信息。值得注意的是,如果必须要指定hosts,那么就只能通过这种方式,否则一旦容器被杀掉重建,这个hosts就会消失。...如果你运行的一个linux服务,那么你会发现容器启动的时候马上就会自动退出,这个其实和docker类似,docker的镜像想要启动容器,就必须要有一个常驻的进程在,常见的方式是写一个死循环在启动命令(...而在k8s,需要配置tty和stdin。 如何不使用已有的镜像启动容器 为了启动容器速度快,默认的会使用已有的镜像启动容器。...如果 Pod 被调度到某节点 而该节点之后失效,或者调度操作本身失效,Pod 会被删除;与此类似,Pod 无法在节点资源 耗尽或者节点维护期间继续存活。...Succeeded和Failed都是表示容器终止,但是Succeed表示的是Pod的所有容器都成功终止,而Failed则表示Pod至少有一个容器是异常退出终止

72610

手动部署java项目到k8s

,由于没有镜像仓库所以我们打包需要在所有的容器节点中进行打包,否则在调度过程如果调度到没有打包镜像的节点则拉取不到镜像就会如下图无法启动完成。...必选-List】 Pod容器的详细定义 - name: String # 【必选】 容器的名称 image: String # 【必选】 容器的镜像名称 imagePullPolicy: [Always...都将重启 | 终止后kubelet将报告给master,不会重启 | 只有Pod以非零退出终止时,kubelet才会重启该容器。...如果容器正常终止退出码为0),则不会重启。...设置为true表示容器使用宿主机网络,不再使用docker网桥,该Pod无法在同一台宿主机上启动第二个副本 volumes: # 【List】 在该Pod上定义的共享存储卷列表 - name: String

86340

Longhorn,企业级云原生容器分布式存储 - 高可用

当数据局部性被禁用时,Longhorn 卷可以由集群任何节点上的副本支持,并由运行在集群任何节点上的 pod 访问。...因为被驱逐的 pod卡在 Terminating 状态,并且附加的卷不能被释放/重用(released/reused),如果没有管理(admin)或存储(storage)软件的干预,新的 pod卡在...这 6 分钟的时间段在 Kubernetes 是硬编码的:如果丢失节点上的 pod 被强制删除,则相关卷将无法正确卸载。...用户需要强制删除终止pod,此时 Longhorn 将从故障节点恢复 Volume Attachment。...由于此时需要节点 kubelet 删除 Pod,并且 Pod 仍然可用,我们可以得出结论,故障节点 Kubelet 无法删除 Pod

1.9K30
领券