容器Pod启动耗时,pod启动过程

金生264小时前

k8s故障检查-pod处于ContainerCreating状态

1、常见导致Pod时间处于“ContainerCreating”状态的原因包括镜像拉取问题资源不足、持久卷问题、网络问题以及安全上下文或docker/运行时问题。要排查镜像拉取问题,可使用kubectl describe POD命令检查pod事件寻找“Failed to pull image”或“ImagePullBackOff”事件,表明镜像拉取存在问题。

2、面对k8s应用卡在ContainerCreating状态的困扰,我通过kubectl describe po命令获取到了关键日志信息

3、一个pod的完整创建通常会伴随着各种事件的产生,k8s种事件的种类总共只有4种:PodStatus 有一组PodConditions。PodCondition中的ConditionStatus,它代表了当前pod是否处于某一个阶段(PodScheduled,Ready,Initialized,Unschedulable),“true” 表示处于,“false”表示不处于。

4、如果创建Pod时状态为ContainerCreating,检查是否需要升级runc版本重新配置源后重新安装。初始化集群时出现错误,检查crio.conf配置文件确保配置正确。遇到fs.may_detach_mounts相关错误,调整sysctl配置并重启相关服务。安装与配置kubeovn:修改install.sh脚本以适应集群环境

Pod生命周期和重启策略

K8s中Pod生命周期包括五种状态,重启策略有三种。Pod生命周期状态: Pending:API Server已创建Pod,但容器镜像尚未运行。 Running:Pod中的所有容器都在运行中或正在启动中。 Succeeded:Pod中的所有容器已成功退出,并且不会重启。 Failed:Pod中的所有容器都已退出,且至少有一个容器是异常退出的。

POD的生命周期与重启策略是K8s中的关键概念,理解它们对于确保应用程序稳定运行至关重要。

Pod的重启策略包括Always、OnFailure和Never,默认值为Always。kubelet 重启失效容器 的 时间间隔 以 sync-frequency 乘以 2n 来计算,例如8倍等, 最长延时5min ,并且在成功重启后的10min后重置该时间。

Always策略:无论正常或非正常停止,容器均会重启。例如,正常关闭Tomcat服务后,Pod状态恢复正常,而非正常关闭时,容器会重启。Never策略:正常或非正常停止,容器都不会重启。停止Tomcat后,正常情况下容器状态保持,非正常时显示Error状态。

容器重启策略定义了容器在失败时的重启行为可以是 Always、OnFailure 或 Never。终止阶段:Pod 的终止是一个体面的过程,通常通过发送 TERM 信号实现。容器运行时会通知主进程,以便其完成清理操作。在超时后,如果主进程仍未终止,所有剩余进程将收到 KILL 信号。

K8s中Pod生命周期和重启策略

1、K8s中Pod生命周期包括五种状态,重启策略有三种。Pod生命周期状态: Pending:API Server已创建Pod,但容器镜像尚未运行。 Running:Pod中的所有容器都在运行中或正在启动中。 Succeeded:Pod中的所有容器已成功退出,并且不会重启。 Failed:Pod中的所有容器都已退出,且至少有一个容器是异常退出的。

2、POD的生命周期与重启策略是K8s中的关键概念,理解它们对于确保应用程序稳定运行至关重要。

3、Always策略:无论正常或非正常停止,容器均会重启。例如,正常关闭Tomcat服务后,Pod状态恢复正常,而非正常关闭时,容器会重启。Never策略:正常或非正常停止,容器都不会重启。停止Tomcat后,正常情况下容器状态保持,非正常时显示Error状态。

揭秘容器启动缓慢的罪魁祸首

1、查看kubelet日志后,我们注意到在节点刚启动时,PLEG(Pod Lifecycle Event Generator)的Relisting方法运行缓慢,通常需要超过30秒。然而,几分钟后,这一现象消失,PLEG方法开始按照预期的每秒一次的频率运行。这个观察结果暗示,在节点刚启动时存在特定问题,导致容器执行延迟现象。

2、电视机启动缓慢可能是由多种因素引起的。首先,硬件老化可能是罪魁祸首。随着时间的推移,电视机的硬件部件,如硬盘处理器内存,可能会出现性能下降,从而导致启动速度变慢。其次,软件问题也可能影响启动速度。如果电视机的操作系统或应用程序存在缺陷,或者需要更新,它们可能会在启动时引起延迟。

3、删除 Safari 容器文件如果您的首选项文件已损坏,您最终会导致 Safari 性能变慢。然而,它发生在零星的情况下,但仍然相当大。通过删除 Safari 容器文件和文件夹,您可以克服文件损坏问题。但是,请记住,删除这些文件会从浏览器中删除您的所有主页设置和其他保存的功能

4、应用程序中存在错误,导致无法启动 你未正确配置容器 Liveness探针失败太多次 你应该尝试从该容器中检索日志以调查其失败的原因。 如果由于容器重新启动太快而看不到日志,则可以使用以下命令: $ kubectl logs pod-name --previous 这个命令打印前一个容器的错误消息

5、原因很明显, ContextLoader 被调用了至少两遍,第二遍报错导致项目初始化失败,其主要的“罪魁祸首”是 dubbo 包下面的 web-fragment.xml 。

6、其次,浏览器插件也可能是造成卡顿的罪魁祸首。用户为了增加浏览器的功能,往往会安装各种插件,但如果插件过多或者某些插件存在兼容性问题,就会导致浏览器启动时加载过多内容而卡住。比如,一些广告屏蔽页面美化插件可能会与某些网页代码产生冲突,造成浏览器响应缓慢。

容器Pod启动耗时,pod启动过程

文章下方广告位