Kubernetes MySQL pod由于内存问题而被杀死

问题描述 投票:0回答:1

在我的Kubernetes 1.11集群中,由于Out of memory问题导致MySQL pod被杀死:

> kernel: Out of memory: Kill process 8514 (mysqld) score 1011 or
> sacrifice child kernel: Killed process 8514 (mysqld)
> total-vm:2019624kB, anon-rss:392216kB, file-rss:0kB, shmem-rss:0kB
> kernel: java invoked oom-killer: gfp_mask=0x201da, order=0,
> oom_score_adj=828 kernel: java
> cpuset=dab20a22eebc2a23577c05d07fcb90116a4afa789050eb91f0b8c2747267d18e
> mems_allowed=0 kernel: CPU: 1 PID: 28667 Comm: java Kdump: loaded Not
> tainted 3.10.0-862.3.3.el7.x86_64 #1 kernel

我的问题:

  1. 如何防止我的pod被OOM杀死?我需要启用部署设置吗?
  2. 当所述节点上没有足够的可用内存时,阻止在节点上安排新pod的配置是什么?
  3. 我们禁用了交换空间。我们是否需要在主机级别禁用内存过量使用设置,将/proc/sys/vm/overcommit_memory设置为0

谢谢SR

kubernetes
1个回答
3
投票

定义Pod清单时,最佳做法是使用resourceslimits为CPU和内存定义requests部分:

resources:
    limits:
      cpu: "1"
      memory: 512Mi
    requests:
      cpu: 500m
      memory: 256Mi

此定义有助于调度程序识别三种服务质量(QoS)类别:

  • 保证
  • 爆裂
  • 尽最大努力交付

最后一类中的豆荚是最容易消耗的。

© www.soinside.com 2019 - 2024. All rights reserved.