为什么dockerd守护进程使用太多内存?我有几个正在运行的pod正在使用少于4 GB的RAM然后我看到dockerd正在使用像6这样的东西? 为什么会这样?这可以接受吗?我的意思是,要管理pod我的主机应该拥有所有这些资源? 我还在我的K8S群集中包含了定期删除未使用的旧docker镜像的逻辑,因此我认为该问题与旧图像无关。
谷歌搜索我可以看到有很多人观察到这类问题,与他们使用的版本可能出现的泄漏/问题有关。 无论如何,我在两台不同版本的机器上观察到这个问题:
我的虚拟机:
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Mon Mar 27 17:17:43 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.12)
Go version: go1.7.5
Git commit: c6d412e
Built: Mon Mar 27 17:17:43 2017
OS/Arch: linux/amd64
Experimental: false
我的Azure K8S群集:
arwadmin@k8s-master-B1FEF67B-0:~$ docker version
Client:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:38:45 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Go version: go1.6.4
Git commit: 78d1802
Built: Tue Jan 10 20:38:45 2017
OS/Arch: linux/amd64
对我来说非常重要的是要了解我的群集应该具有的实际内存量,因为我正在谈论可能的生产环境,其中我的pod将被缩放/缩小。 你能帮忙理解这个吗?
我现在进行了另一次检查(docker stats),此时我的群集(有3个代理),agent0正在使用更多内存:
pod使用的所有内存总和小于4 GB。 为什么Dockerd守护进程本身在一个代理上使用了近7 GB而在另外两个代理上使用了几MB?