生产Kubernetes节点的最小磁盘大小是多少?

时间:2017-01-29 07:39:28

标签: amazon-web-services docker kubernetes

我正在使用Kubernetes在AWS上玩,其中t2.medium EC2实例具有20GB的磁盘空间,其中一个节点在几天之后用尽了磁盘空间。它似乎是由Docker镜像和日志的组合引起的。

据我所知,Kubernetes拥有自己的Docker GC来管理Docker的磁盘使用和日志轮换。我猜测20GB不足以让Kubernetes自行管理磁盘使用情况。什么是生产环境的安全磁盘大小?

3 个答案:

答案 0 :(得分:5)

按照quickstart guide中所述使用GKE进行标准安装时,您最终会得到3 x n1-standard-1个节点(请参阅machine types),每个节点有100 GB的存储空间。

在创建群集后立即查看节点,然后为磁盘空间提供这些数字:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       1.2G  455M  767M  38% /
devtmpfs        1.9G     0  1.9G   0% /dev
tmp             1.9G   24K  1.9G   1% /tmp
run             1.9G  684K  1.9G   1% /run
shmfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1        95G  2.4G   92G   3% /var
/dev/sda8        12M   28K   12M   1% /usr/share/oem
media           1.9G     0  1.9G   0% /media
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs           256K     0  256K   0% /mnt/disks
tmpfs           1.0M  120K  904K  12% /var/lib/cloud
overlayfs       1.0M  124K  900K  13% /etc

这些数字可能会给你一个起点,但正如其他人已经指出的那样,其余的则取决于你的具体要求。

答案 1 :(得分:2)

我认为没有一般答案。您已经回答了自己 - 您需要足够的空间来存放码头图像,容器和日志。多少 - 取决于使用的图像数量,运行的容器,生成的日志量以及要保留的日志量。

基于Kubernetes的应用程序不应在pod卷上创建日志文件。日志应该转到共享卷(pod外部)或日志管理数据库,如elasticSearch,graylog。在群集生命周期内,将多次创建和删除Pod。当pod消失时,挂载在pod卷上的日志文件将消失。最有可能的是,您希望您的日志活得比这长。

从实验中你已经知道你应该知道这些数字,并能够根据你的需要估算用量。

有关详细信息,请参阅https://kubernetes.io/docs/admin/garbage-collection/

答案 2 :(得分:0)

我发现,如果我确实需要5G,我可以``通过'',即用于测试K8s的可扩展性等等。有趣的是,在两个不同的平台上,Ive通常看到:

  • 通常,在Vsphere上运行集群api实现时,我发现节点通常在40个节点集群上使用2%到10%的磁盘空间。这相当于1-5G。

  • 在AWS上,我发现(例如,使用EKctl或cluster-api-provider-aws),集群可以使用相同的大小,大约2G左右,平均大约与我通常使用的大小相同在vSphere集群中查看

    [ec2-user @ ip-192-168-76-4〜] $ df -h 已使用的文件系统大小可用百分比已安装在 / dev / nvme0n1p1 80G 2.4G 78G 3%/

这是您正在运行的高度可变的wrt容器,不同数量的映像等,但是通常,Kubelet本身会旋转日志,并且最终不会随着时间的推移而占用大量磁盘空间。如果您在此处查看:https://github.com/kubernetes/kubernetes/pull/59898,则可以看到围绕最大日志大小/有效期的初始实施的逻辑。如果您确实需要节省磁盘空间,可以使用多种选项发送Kubelet本身,以使此日志旋转更加严格。

因此,通常来说,您可以期望在运行群集几周后,无论状态大小如何,都可以坚持使用。

如果不时使用大量新图像,请确保与CRI配置核实有关是否回收了图像。