我正在使用最新的 CoreOS AMI (ami-0fc25a0b6bd986d03 详细信息) 在一个小的t2.nano
实例上。
此实例只有 500MB 内存。不幸的是,CoreOS 立即为 tmpfs 消耗了约 240MB,然后挂载到该 tmpfs,/tmp
如下所示。这似乎完全占用了我的shared
内存,我无法启动容器。有什么方法可以减少它的大小吗?或者也许有某种方法可以将 /tmp 挂载到根文件系统上?
我正在考虑放弃 CoreOS,仅仅是因为我无法让它在小型实例大小下工作,这很遗憾,因为我选择它是因为它应该是一个微型操作系统,可以让我运行容器……
$ free -h
total used free shared buff/cache available
Mem: 479Mi 232Mi 7.0Mi 199Mi 238Mi 34Mi
Swap: 0B 0B 0B
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 219M 0 219M 0% /dev
tmpfs 240M 0 240M 0% /dev/shm
tmpfs 240M 488K 240M 1% /run
tmpfs 240M 0 240M 0% /sys/fs/cgroup
/dev/xvda9 14G 2.8G 9.9G 22% /
/dev/mapper/usr 985M 791M 143M 85% /usr
none 240M 200M 41M 84% /run/torcx/unpack
tmpfs 240M 0 240M 0% /media
tmpfs 240M 0 240M 0% /tmp
/dev/xvda6 108M 112K 99M 1% /usr/share/oem
/dev/xvda1 127M 53M 74M 42% /boot
tmpfs 48M 0 48M 0% /run/user/500
编辑:也许相关,RancherOS 似乎需要至少 1GB 才能启动,尽管他们的 GitHub 讨论了从 512MB 到 2GB 的值。我不明白为什么这些“微型操作系统”有如此相对较高的 RAM 需求。作为背景,Debian 在无头安装上最低为 256MB
答案1
这是因为托克斯,它允许您选择系统上所需的 Docker 版本。torcx 将选定的 Docker 映像解压到 tmpfs 中。从技术上讲,可以解决这个问题,例如通过禁用 torcx 并提供您自己的容器运行时,但目前没有任何官方支持的方法可以做到这一点。