K8s关于异常Pod的处理_pod数量异常-程序员宅基地

技术标签: jenkins  运维日常的FAQ  docker/kubernetes  docker  

前言


某天开发人员开发环境发布失败,于是找到了这边处理一下.



过程


<1>发布环境是Centos系统的k8s测试集群,从jenkins上看编译正常,编译后镜像正常,结果在启动和注册时候一直不成功直到超时发布失败.


<2>服务器上进行查看,发现pod状态为Pending
(该状态通常是调度异常,通常是k8s 的node资源不足)

kubectl get pod -n <namespace> |grep 项目名称
kubectl get pod -n <namespace>  -o wide <pod-name>
kubectl get pod -n <namespace>  -o yaml <pod-name>

在这里插入图片描述



<3>查看Pod的日志

kubectl logs -f  <pod-name> -n <nameSpace> -c  <container_name> 

命令无错,容器没起来所以没有日志



<4>查看 Pod 的事件

kubectl describe pod <pod-name> -n <nameSpace>

没截图.英语不好的把报错复制到翻译软件,它会告知是哪个资源不足导致的异常



<5>查看node的资源

kubectl top node
kubectl top pod -n <namespace>

实际情况是各个节点上都有资源,但每个node剩余的资源,都不符合该项目的内存和cpu配置,无法调度pod到某一个node上启动
篮球无法放到小瓶子里



处理方法



方法一


新添加node节点
线上环境建议直接增加节点



方法二



对该项目中同一代码模块pod的数量进行调整,也就是调整实例数

需要和开发人员沟通,缩减某pod的数量到某个值,是否影响测试的可靠性和准确性



方法三



占用node节点资源的通常是pod的日志,过期的旧镜像和状态异常但未删除的pod

关于pod日志的切割和清理,建议配置计划任务和脚本进行切割和清理,但是重要的日志还是需要进行备份.否则当业务较繁忙时,日志大量产生触发脚本,虽然保证了节点的可用性,但日志会被清空.如果业务繁忙,在监控上会频繁出现短暂的磁盘报警再恢复的现象.
关于过期的旧镜像.可根据需求,清理未启动容器的镜像或者按创建时间删除老版本的镜像
关于状态异常但未删除的pod,应保持良好习惯,即使资源足够,在排错后也要删除异常pod,否则占用资源影响报警.


删除pod演示

<1>删除pod

kubectl delete pod -n <namespace>  <pod-name>


如果只删除pod,deployment会自动重建,所以在删除后pod又重启了,应先删除deployment



<2>删除deployment

kubectl get deployment -n <namespace>
kubectl delete deployment <deployment_name> -n <namespace>

删除deployment后果是,其 对应的所有 pod 之后也会被删除



<3>再删除pod

kubectl delete pod -n <namespace>  <pod-name>


<4>Terminating的pod有些特殊,需要强制删除

kubectl delete pod <pod-name>  -n <namespace>  --force --grace-period=0 


补充



Pod的常见的几种状态,其他的百度即可

Pending 挂起
Pending 说明Pod还没有调度到某个Node 上面。可能的原因资源不足,集群内每个noode都不满足该Pod请求的资源需求;HostPort被占用

ContainerCreating 容器创建中
还处于创建中.可能的原因:网络问题导致Kubelet无法访问镜像或拉取镜像超时;配置镜像错误,导致容器无法启动;配置异常,无法分配pod网络

ImagePullBackOff 正在重试拉取
通常是镜像拉取失败。可能原因:配置镜像的名称错误,无法拉取.可以docker pull拉取试一下

CrashLoopBackOff 容器退出,kubelet正在将它重启
CrashLoopBackOff 容器启动但又异常退出。可能原因: apollo配置异常,例如内存相关 代码逻辑问题.可以查看该pod的日志

Terminating 结束
可能原因:node节点内核出现bug,导致状态异常,重启node. 可使用强制删除

Evicted 驱赶
可能原因: 系统内存或硬盘资源不足.驱赶pod到其他节点



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/GX_1_11_real/article/details/120264747

智能推荐

解析rtcm32报文工具_学习网络请落实这几款小工具-程序员宅基地

文章浏览阅读1.7k次。在实际开发过程中,熟练使用Linux或者Windows中相关网络工具,可以更快更准地找到故障。所以,今天就跟大家分享几个实用的网络利器。1 ncnc-->“瑞士军刀”。不知大家在渗透过程中,拿了shell有没有使用nc搞点事儿。它用来快速构建网络链接,常用来调试客户端程序。nc参数举例执行任务命令扫描机器A端口号在30-40的服务nc -z A 30-40连接服务器A端口号为5000nc -..._rtcm工具

Facebook’s Tectonic Filesystem: Efficiency from Exascale——论文阅读

对Facebook存储系统进行介绍,之前采用多个子系统独自构建存储栈,不同子系统资源需求不同,导致资源没有充分利用。提出Tectonic,用单个系统实现各种用例,避免资源浪费,实现IOPS和存储空间的均衡,满足EB级别,租户间隔离,共享资源等的需求。包括4个部分:Chunk Store,由存储节点组成;Metadata Store,由 KV 存储和文件系统元数据层组成;Client Library,负责编排;Background services,维护集群一致性和容错。详细介绍了各种组件的实现方法。

【DeepL】菜鸟教程:如何申请DeepL免费API并使用Python的DeepL

DeepL是一个基于人工智能的翻译服务,它以其出色的翻译质量和对语境的深入理解而著称。与其他翻译服务相比,DeepL能够提供更加自然、准确的翻译结果,这得益于其先进的深度学习技术和庞大的训练数据集。

数字文旅重塑旅游发展新格局:以数字化转型为突破口,提升旅游服务的智能化水平,为游客带来全新的旅游体验

通过数字化转型和智能化服务的提升,数字文旅为游客带来了全新的旅游体验,推动了旅游业的持续健康发展。数字文旅以数字化转型为突破口,通过提升旅游服务的智能化水平,为游客带来全新的旅游体验,引领旅游业迈向更加智能化、个性化的未来。“方案365”全新整理智慧文旅、智慧园区、数字乡村-智慧农业、智慧城市、数据治理、智慧应急、数字孪生、乡村振兴、智慧乡村、元宇宙、数据中台、智慧矿山、城市生命线、智慧水利、智慧校园、智慧工地、智慧农业、智慧旅游等300+行业全套解决方案。数字文旅的兴起正在重塑旅游发展的新格局。

DRF JWT认证进阶

实际的案例中,登录的方式有很多种,既可以是用户名,还可以是手机号,还可以是邮箱等,并且他们的登录输入入口都是一个,所以这里将实现这种接口用户表用普通的表创建一个数据表用于侧式认证功能username = models.CharField(max_length=64, verbose_name='用户名')password = models.CharField(max_length=64, verbose_name='密码')

使用VSCODE生成调试Linux下C++的CMake项目_vscode cmake 新建linux工程-程序员宅基地

文章浏览阅读1.4k次。以epoll-server项目为例,通过VSCODE编译并调试。该形目由CMake构建,目标在该目录下生成build目录,通过CMake生成Makefile工程到build目录下,然后在build目录下执行make命令进行编译,最后通过VSCODE进行调试。Build代码目录用VSCODE WSL模式打开该目录。在.vscode文件夹下面创建task.json。task.json{ "version": "2.0.0", "tasks": [ {.._vscode cmake 新建linux工程

随便推点

基于Matlab使用深度学习的多曝光图像融合

一、项目背景在图像处理领域,多曝光图像融合技术是一种重要的技术,它可以将不同曝光条件下的多幅图像合并为一幅高动态范围(HDR)图像。这种技术对于改善图像的视觉效果、增强图像的细节和对比度等方面具有重要意义。近年来,随着深度学习技术的快速发展,将深度学习应用于多曝光图像融合领域已成为一个研究热点。本项目旨在利用Matlab平台和深度学习技术,实现高效、准确的多曝光图像融合。二、项目目标构建深度学习模型:基于Matlab深度学习工具箱,构建适用于多曝光图像融合的深度学习模型。

并发情况下,Elasticsearch 保证读写一致的方法

并发情况下,Elasticsearch 保证读写一致的方法

深度学习之视觉特征提取器——LeNet

LeNet是是由深度学习巨头Yann LeCun在1998年提出,可以算作多层卷积网络在图像识别领域的首次成功应用。我们现在通常说的LeNet是指LeNet-5,最早的LeNet-1在1988年即开始研究,前后持续十年之久。但是,受限于当时计算机算力的发展,以及本有的SVM技术效果就十分优秀,这一技术并没有得到广泛重视。然而,在以卷积神经网络为基础构建起的计算机视觉的今天,不得不感慨,二十年后今天的LLM或者是什么模型,会成为曾经的CNN/LeNet。

2024年第十五届蓝桥杯江苏省赛回顾

希望提升自己的小伙伴可以参照我往期的博客,相信下一个是你。

Qt如何获取Widget窗体子控件_qt 抓子控件消息-程序员宅基地

文章浏览阅读6.3k次,点赞2次,收藏14次。123_qt 抓子控件消息

RuntimeError: “LayerNormKernelImpl“ not implemented for ‘Long‘_"runtimeerror: \"layernormkernelimpl\" not impleme-程序员宅基地

文章浏览阅读7.2k次。RuntimeError: "LayerNormKernelImpl" not implemented for 'Long'_"runtimeerror: \"layernormkernelimpl\" not implemented for 'half"

推荐文章

热门文章

相关标签