kubelet内存不足会导致磁盘读取激增吗?

环境

平台: AWS
Kubernetes版本: v1.11.5

现象

在Kubernetes的节点上使用的实例的读取操作不定时地发生大爆发。
期间CPU略有增加,其他指标没有明显变化。
由于达到了EBS的上限,读取操作受到限制,导致节点的状态变为未知,部署的Pod的响应变差等故障发生。

スクリーンショット 2019-03-16 17.01.39.png
スクリーンショット 2019-03-16 17.01.51.png

虽然我从未在实时中遇到过这种情况,但即使我幸运地遇到了,由于受到限制,似乎也无法登录。

进行条件调查

    • あるアプリケーションのpodを展開しているnodeでのみ起きる

モニタリング用やcontrollerのnodeでは起きたことがない

起動後しばらく経ったnodeで起きる

10日以上

アプリケーションの起動時間は無関係

ちょくちょくpodを作り直しても起きる

只有部署应用程序的节点发生了这种情况,所以肯定有某种关系。
然而,从观察cadvisor的指标来看,kubelet和每个pod的读取量都有所增加,所以应用程序的pod似乎不是直接的原因。

线索

那个看起来像的东西

模棱两可。

看起来很像,但有点不同的东西。

这个链接中贴出的度量值看起来很相似,但是实在太旧了。

这也有点老,设备也不一样。

可能是因为内存不足导致的问题吗?
确实,出现问题的节点确实在使用了满负荷的内存运行。

进行实验

在本地使用Vagrant创建集群
为worker节点分配4GiB内存
同时在部署消耗内存的pod时使用iotop观察情况

スクリーンショット 2019-03-16 23.09.05.png
スクリーンショット 2019-03-16 23.25.50.png

虽然暂时遇到了类似于47928的情况,但不能确定这是否与实际环境中发生的问题相同。
不管怎样,这肯定是一个必须要采取措施解决的问题。

看起来内存不足是一个问题,但这真的是Kubernetes的问题吗?

目前的结论和对策是什么?

POD领域可能会出现压缩系统领域内存的症状
(仅在一段时间后启动的节点上出现,可以直观地理解)
无论如何,OOM Killer在做什么呢?
根据第47928行所说,在kubelet的标志、kube-reserved和system-reserved中分配资源并观察情况
不想浪费太多资源,还需要调查应该分配多少资源…

广告
将在 10 秒后关闭
bannerAds