我们使用 kubernetes(具体来说:openshift)在我们的团队中运行基础设施。
其中一个守护进程集 fluentd 目前造成了很多麻烦,经常导致完整节点宕机,并对 CPU、内存和磁盘 I/O 提出巨大的要求(真的,这太愚蠢了!)。
我们在 DaemonSet 定义中对 pod 设置了以下资源限制和请求:
resources:
limits:
memory: 512Mi
requests:
cpu: 100m
memory: 512Mi
我原本以为当内存消耗超过 512Mi 时,k8s 会终止该 pod。然而,这些 pod 可以自由地消耗 1000% 以上的 CPU 和机器上所有可用的 RAM(远高于 512Mi)。
我做了一些研究,似乎世界对于超出内存限制时会发生什么存在很大分歧。
我们非常希望第二个选项能够应用于这个讨厌的 pod!我们还缺少什么?
答案1
当 Pod 过度消耗 CPU/RAM 时,您是否管理了 kubernetes/集群限制/请求以杀死它们,而不是在您的 Helm 图表或 K8s 配置文件上应用这些限制?
关于你的问题的一些很好的链接:这里
祝你有美好的一天,希望对你有所帮助