如果IBM Cloud Private附带的Prometheus频繁崩溃,请处理

经过

在IBM Cloud Private(ICP)中,Prometheus被默认安装。然而,在安装后不久,我们注意到Prometheus容器突然死机并反复重启。查看容器日志,可以看到服务正常启动,但过一段时间容器就会崩溃并重新启动。

总结一下,在节点的操作系统上运行了OOM Killer。

# dmesg | grep prometheus
[287787.255395] prometheus invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=984
[287787.255401] prometheus cpuset=2a3fd55af7e6b229ba978ee840e193c473c1b65a45ca9afbb5aba61073115f2f mems_allowed=0
[287787.255405] CPU: 0 PID: 24987 Comm: prometheus Kdump: loaded Not tainted 3.10.0-862.3.2.el7.x86_64 #1
[287787.255661] [24933]     0 24933   212094   129001     302        0           984 prometheus
[287787.255664] Memory cgroup out of memory: Kill process 25005 (prometheus) score 1969 or sacrifice child
[287787.258035] Killed process 24933 (prometheus) total-vm:848376kB, anon-rss:516004kB, file-rss:0kB, shmem-rss:0kB

当查看Prometheus的Pod定义时,发现内存限制为512MiB。让我们将其扩大一下。

$ kubectl get deployment monitoring-prometheus -n kube-system -o yaml
(略)
        resources:
          limits:
            cpu: 500m
            memory: 512Mi

步骤

$ kubectl edit deployment monitoring-prometheus -n kube-system
-> 先ほどの512Miを1Gi等に変えて保存

这样一来,部署将自动被撤销并以新的内存限制重新启动。真是太方便了。

以上就是全部。 (Zhè jiù shì .)