首页 > 解决方案 > 谷歌 Kubernetes 日志

问题描述

Memory cgroup out of memory: Kill process 545486 (python3) score 2016 or sacrifice child Killed process 545486 (python3) total-vm:579096kB, anon-rss:518892kB, file-rss:16952kB

该节点记录并且我的容器不断随机重启。运行具有 4 个副本的 python cotnainer。

Python 应用程序包含带有烧瓶的套接字。Docker 镜像包含python3.5:slim

Kubectl get nodes

NAME                                                 CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
gke-XXXXXXX-cluster-highmem-pool-gen2-f2743e02-msv2   682m         17%    11959Mi         89%    

今天早上节点日志:0/1 nodes are available: 1 Insufficient cpu.

但节点 CPU 使用率仅为 17%

吊舱内没有太多运行。

标签: dockerkubernetesgoogle-cloud-platformgoogle-kubernetes-enginekubernetes-pod

解决方案


查看最佳实践并尝试调整CPU内存的资源请求和限制。如果您的应用开始达到 CPU 限制,Kubernetes 就会开始限制您的容器。因为没有办法限制内存使用,如果容器超过其内存限制,它将被终止(并重新启动)。因此,使用合适的限制应该可以帮助您解决重新启动容器的问题。

如果您的容器请求超出限制,Kubernetes 将抛出一个错误,类似于您的错误,并且不会让您运行容器。

调整限制后,您可以使用一些监控系统(如Stackdriver)来查找潜在内存泄漏的原因。


推荐阅读