前言


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



过程


<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到其他节点



K8s关于异常Pod的处理相关推荐

  1. k8s关于Orphaned pod <pod_id> found,volume paths are still present on disk 的解决方法

    问题描述 因k8s节点异常关机导致启动后业务Pod重新部署,关机之前的Pod状态已被删除,今天在查看日志时发现在异常关机之前的集群节点Pod是非正常移除的,一直刷报错信息:如下: 问题排查 查看系统日 ...

  2. 【K8S系列】Pod重启策略及重启可能原因

    目录 1 重启策略 1.1 Always 1.2  OnFailure 1.3 Nerver 1.4 yaml示例 2 Pod常见异常状态 2.1  Pending状态 2.2 Waiting/Con ...

  3. K8S中的pod、services、容器的概念和区别

    K8S中的pod.services.容器的概念和区别 k8s的部署架构 kubernetes中有两类资源,分别是master和nodes,master和nodes上跑的服务如下图: 1 kube-ap ...

  4. K8S集群Pod资源自动扩缩容方案

    K8S集群Pod资源自动扩缩容方案 1.为什么要是有自动扩缩容 在K8S集群中部署的应用程序都是以Pod的形式部署的,我们在部署Pod资源时都会指定Pod资源的副本数,但是这个数量是写死的,平时可能启 ...

  5. k8s核心概念pod 基本定义和命令

    文章目录 工作负载 pod定义 pod分类 关系 静态pod 控制器管理的pod 镜像拉取策略 pod常用命令 创建pod 查看pod 删除pod 删除单个pod 删除多个pod pod的标签命令 查 ...

  6. K8s JavaClient watch Pod检测状态变更、和Read timed out异常

    watch k8s很多命令都有watch机制,持续检测状态变化,如pod列表,如果pod状态发生变化,就会输出 kubectl get pod -w 或者--watch JAVA Cient watc ...

  7. K8S日常问题-k8s中大量pod 状态 evicted

    背景 在查看k8s的环境的时候,突然发现存在n多个pod状态为Evicted.差不多得有几百个.在这里插入图片描述 eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应 ...

  8. K8S!之Pod概念与网络通讯方式详解!

    文章目录 前言 一:pod概念 1.1 pod的种类 1.11特点: 1.2 pod网络 1.3 pod存储 1.4 使用pod 1.5 pod控制器类型 1.6 服务发现 二:网络通讯方式 2.1: ...

  9. K8S调度之pod亲和性

    目录 Pod Affinity Pod亲和性调度 pod互斥性调度 Pod Affinity 通过<K8S调度之节点亲和性>,我们知道怎么在调度的时候让pod灵活的选择node,但有些时候 ...

最新文章

  1. slub object 内存布局
  2. 你的二次元老婆,被AI变成了暗黑系
  3. 2020携程“BOSS直播”大数据发布:GMV累计超11亿
  4. Object-C 入门介绍
  5. 测试工具–super-mack
  6. slice,substring,substr的区别
  7. php中的__autoload()函数
  8. 区块链BaaS云服务(29) 溪塔科技 CITA-Cloud 二
  9. apachebench ab.exe压力测试
  10. ROS学习手记 - 5 理解ROS中的基本概念_Services and Parameters
  11. 【BZOJ】【4010】【HNOI2015】菜肴制作
  12. 大学计算机基础字母缩写大全,大学计算机基础缩写词.pdf
  13. 一篇非常 Nice 的 UmiJS 教程
  14. 抠图算法(交互式)以及证件照的自动抠图
  15. C# winform国际版,中英文转换
  16. matlab 求特征值的命令,matlab中求解特征值方程函数eig
  17. 不懂就要问!流量卡拒收对个人会有影响吗?
  18. c语言的职业兴趣测试,职业生涯规划计算机
  19. Influxdb自定义数据采样(CQ)
  20. CCNA思科的一些基础知识

热门文章

  1. 5. PHP 输出图像 imagegif 、imagejpeg 与 imagepng 函数
  2. 面试必问系列:5、知道多线程吗?谈谈你参与过的多线程实战场景
  3. 常见排序算法的最好、最坏、平均时间复杂度以及空间复杂度
  4. 国际验证码接口GO语言
  5. 使用malloc动态内存分配一个二维数组
  6. 更换APP启动图标和名称
  7. 数据可视化笔记7 网络数据可视化
  8. 什么是linux手机软件?
  9. 布法罗大学计算机硕士学费,美国水牛城大学学费贵不贵(美国水牛城大学往年排名情况怎么样)...
  10. CSMA/CD的基本工作过程