之前可使用kubectl top nodes观察发布时的cpu使用情况

可以登陆node节点主机使用 top H -n 1 查看线程情况

同时并发发布多个项目,导致cpu满了之后,挂掉

导致该node节点的pod全部迁移至其他node节点,而其他node节点的cpu及线程最大限制都无法负载pod,导致node一个个宕机,最终整个集群宕机。

经过查看发现是由于pid耗尽,致使docker崩溃,无法驱逐pod,最终触发系统OOM。

触发原因: 集群初始node节点较少,启动pod过多,pod request设置的较小,导致大量pod调度到节点上,打满了节点pid,docker崩溃,kubelet无法工作,节点也无法登陆,触发系统OOM后,有多余的pid被释放,此时节点可以登陆,但是docker已经挂掉,问题节点无法恢复正常工作,此时新加节点,会导致原节点上的pod集体迁移到新节点,导致新节点也因同样原因挂掉,造成集群雪崩效应,需要手动重启组件或节点才可恢复。

原因1:节点pid限制为32768

原因2:用户container启动了过多的线程

原因3:kubelet未做pid资源限制

临时解决方案:

1. 调大pod requests,限制每个节点上的pod总量

2. 减少容器的线程启动量,设置一个最大值

3. 部署服务时尽量提前准备好足够的节点,以使pod能平均调度,减轻各node的pid压力

短期解决方案:

1. k8s调大pid限制至65535

2. 改善其他内核限制

3. 去除历史遗留日志

长远解决方案:

1. 提供K8S 1.14版本后彻底解决

K8S 1.13版本kubelet有--pod-max-pids feature,是alpha参数,不准备使用

K8S 1.14版本--pod-max-pids是beta参数,将启用限制pod可启的线程数,system-reserved 和kube-reserved 这2个参数也将支持节点pid资源预留,也将启用

https://github.com/kubernetes/kubernetes/pull/73651/commits/2597a1d97ef4d8f54b1ca661453e32794b756909

记一次线上k8s宕机相关推荐

  1. 记一次线上coredump事故

    转自:http://www.likecs.com/show-16439.html 记一次线上coredump事故 1.事故背景 上周三凌晨,我负责的某个模块在多台机器上连续发生coredump,幸好发 ...

  2. 线上抓娃娃机火了三个月了,你玩了吗?

    作者:MMBellaaa 全文共 5237 字 13图,阅读需要 11 分钟 ---- / BEGIN / ---- 最近一段时间,线上抓娃娃机APP吸引了我的注意.不仅仅是因为它是个新兴产品,还因为 ...

  3. 记一次线上环境 redis偶尔连接超时报错 解决

    记一次线上环境 redis偶尔连接超时报错 解决 贴出本地控制台日志 说实话,很痛苦,跟进很久了,一直认为的jvm程序所使用的配置的连接池框架问题 因为程序为 springboot 2 spring ...

  4. 最近两周我们接触到的两种线上抓娃娃机的技术实现方案(一种RTSP/一种RTMP)

    线上抓娃娃机需求 最近线上抓娃娃机的项目火爆了,陆陆续续几十款线上抓娃娃机上架,还有一大波正在开发上线中,各大视频云提供商都在蹭热度发布自己的线上抓娃娃机方案,综合了一下,目前线上抓娃娃机的视频需求无 ...

  5. 记几次 [线上环境] Dubbo 线程池占满原因分析(第三次:GC STW)

    [线上环境] Dubbo 线程池占满原因排查系列 记几次 [线上环境] Dubbo 线程池占满原因分析(第一次:HttpClient) 记几次 [线上环境] Dubbo 线程池占满原因分析(第二次:C ...

  6. 记一次线上应用连接池满的处理

    记一次线上应用dubbo-claim连接池满的处理 首先看到dubbo-claim应用突然大面积报错,基本反馈是冻结预算出问题了,看了看冻结预算的代码,发现写的非常复杂,果断放弃看代码来排查问题. C ...

  7. 记一次线上OOM问题分析与解决

    一.问题情况 最近用户反映系统响应越来越慢,而且不是偶发性的慢.根据后台日志,可以看到系统已经有oom现象. 根据jdk自带的jconsole工具,可以监视到系统处于堵塞时期.cup占满,活动线程数持 ...

  8. 【MySQL】记一次线上重大事故:二狗子竟然把线上数据库删了!!

    写在前面 估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉.让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么 ...

  9. 记一次线上偶现的循环依赖问题

    前情回顾 一探 Spring 的循环依赖,源码详细分析 → 真的非要三级缓存吗 中讲到了循环依赖问题 同样说明了 Spring 只能解决 setter 方式的循环依赖,不能解决构造方法的循环依赖 重点 ...

  10. 记一次线上请求偶尔变慢的排查

    前言 最近解决了个比较棘手的问题,由于排查过程挺有意思,于是就以此为素材写出了本篇文章. Bug现场 这是一个偶发的性能问题.在每天几百万比交易请求中,平均耗时大约为300ms,但总有那么100多笔会 ...

最新文章

  1. c++ lambda函数_C++ Lambda表达式
  2. iphone 11维修 服务器,苹果官方承认!iPhone 11有这个重大问题,将免费维修
  3. 计算机主板用塑料做的好吗,太震惊!你的键盘是否用了黑心塑料?
  4. 自定义字段类型的开发[转]
  5. 数据结构与算法(2)——栈和队列
  6. Winform Datagridview 单元格html格式化支持富文本
  7. 有人问我:AI这么火,要不要去追赶AI的热潮?
  8. 如果 AI 和算法无罪,那么谁在杀死穷人?
  9. php接收post参数乱码,学习猿地-php接收post参数乱码怎么办
  10. 【Objective-C】探索Category底层的实质
  11. 删除Windows网络连接方法
  12. Ubuntu安装MDK5
  13. Scrapy爬虫流程
  14. Java多线程学习(吐血超详细总结)
  15. 大数据分析01——成都二手房(平均价格)
  16. 分布式系统与网络分区
  17. Ubuntu 12.04硬盘安装与U盘安装(图文)
  18. 黄鸟抓包app(httpcanary)
  19. 国内有哪些移动开发平台?各有什么特点
  20. u盘添加veket linux,PE+veket成功安装到U盘,经验分享

热门文章

  1. GNU C/C++中的内存模型与原子操作
  2. java entrypoint_Jar打包用法详解
  3. 偏光片在LCD中的应用
  4. 三问百度:是否在干预搜索结果?
  5. C# FTP 工具类
  6. win10系统下go build(构建) so文件
  7. 一切安好,心平气和,坚持前进
  8. Java8 DateTimeFormatter常见问题分析总结
  9. MySQL数据库免安装版配置教程及常见问题
  10. 人工神经网络中的激活函数