7

k8s liveness与突发流量导致的雪崩

 2 years ago
source link: https://blog.csdn.net/oqqYuan1234567890/article/details/122205764
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

k8s liveness与突发流量导致的雪崩

original.png
皿小草 2021-12-29 00:29:46 3
专栏收录该内容
3 篇文章 0 订阅

前阵子新上线的一个服务,是一个 NodeJS HTTP API 应用, 是一个 CPU 密集型应用,一旦请求量过高,就无法接受新的连接

与此同时,pod 配置了 liveness probe,每隔15s 会调用一次 localhost 的 心跳 API, 心跳 API 与业务都在一个端口。应用有配置 HPA。线上跑了一阵,没有发现什么问题,会正常扩容。

此时,问题就来了,由于有一阵较大的突发流量,直接把所有 pod CPU 打满,打满的时候,由于 liveness probe 失败,导致部分 pod 被频繁重启。频繁重启又导致处理能力不够,其它 pod 的负载更高,于是其它 pod 又被重启。于是,一次教科书般的雪崩发生了。如果不是突发流量,也许 HPA 扩容后可以解决这个问题

  • NodeJS http server 的特性,CPU 过高会影响连接的接入能力,这个问题暂时无解
  • liveness 的设置,如果面临上一种情况,则要考虑关闭 liveness probe 或者延长到一个较大的值,等到 HPA 把 pod 拉起来后,基本可以解决问题。(当然 HPA 的最大实例需要满足流量高峰)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK