7 容器配置选项
在本章中,您需要以您的非特权用户身份运行命令(如果您从本书开头就一直在跟随,则为“incusadmin”)。
安装后,有大量的选项可用于配置容器。但在看到这些之前,让我们先检查一下容器的info
命令。在本例中,您将使用ubuntu-test容器。
incus info ubuntu-test
这将显示以下内容:
Name: ubuntu-test
Location: none
Remote: unix://
Architecture: x86_64
Created: 2021/04/26 15:14 UTC
Status: Running
Type: container
Profiles: default, macvlan
Pid: 584710
Ips:
eth0: inet 192.168.1.201 enp3s0
eth0: inet6 fe80::216:3eff:fe10:6d6d enp3s0
lo: inet 127.0.0.1
lo: inet6 ::1
Resources:
Processes: 13
Disk usage:
root: 85.30MB
CPU usage:
CPU usage (in seconds): 1
Memory usage:
Memory (current): 99.16MB
Memory (peak): 110.90MB
Network usage:
eth0:
Bytes received: 53.56kB
Bytes sent: 2.66kB
Packets received: 876
Packets sent: 36
lo:
Bytes received: 0B
Bytes sent: 0B
Packets received: 0
Packets sent: 0
有关应用于内存、已用磁盘空间等的配置文件的良好信息。
关于配置和一些选项的说明¶
Incus 默认会为容器分配所需的系统内存、磁盘空间、CPU 核心和其他资源。但如果您想更具体一点呢?这是可能的。
这样做是有权衡的。例如,如果您分配了系统内存而容器并未全部使用,那么您就将其从可能需要它的另一个容器中夺走了。反之亦然。如果一个容器想要使用超过其份额的内存,它可以阻止其他容器获得足够的内存,从而影响它们的性能。
请记住,您对容器进行的每一次配置操作都可能在其他地方产生不利影响。
与其一一列举所有配置选项,不如使用 Tab 键自动补全来查看可用选项。
incus config set ubuntu-test
以及 Tab 键。
这将显示所有用于配置容器的选项。如果您对某个配置选项的作用有疑问,请前往 Incus 官方文档 搜索该配置参数,或使用 Google 搜索整个字符串,例如 incus config set limits.memory
并检查搜索结果。
在此,我们检查一些最常用的配置选项。例如,如果您想设置容器可以使用的最大内存量:
incus config set ubuntu-test limits.memory 2GB
这意味着,如果内存可用,例如 2 GB,那么容器实际上可以使用超过 2GB。例如,这是一个软限制。
incus config set ubuntu-test limits.memory.enforce 2GB
这意味着容器永远不能使用超过 2GB 的内存,无论当前是否可用。在这种情况下,这是一个硬限制。
incus config set ubuntu-test limits.cpu 2
这表示将容器可以使用的 CPU 核心数限制为 2。
注意
当本文档为 Rocky Linux 9.0 重写时,9 的 ZFS 存储库尚不可用。因此,我们所有的测试容器都是在 init 过程中使用“dir”创建的。这就是为什么下面的示例显示的是“dir”存储池而不是“zfs”存储池。
还记得我们在 ZFS 章节中设置存储池时是如何做的吗?您将池命名为“storage”,但也可以将其命名为任何名称。如果您想检查这一点,可以使用此命令,该命令同样适用于任何其他池类型(如下面的 dir 示例所示)。
incus storage show storage
这将显示以下内容:
config:
source: /var/snap/lxd/common/lxd/storage-pools/storage
description: ""
name: storage
driver: dir
used_by:
- /1.0/instances/rockylinux-test-8
- /1.0/instances/rockylinux-test-9
- /1.0/instances/ubuntu-test
- /1.0/profiles/default
status: Created
locations:
- none
这表明我们所有的容器都使用我们的 dir 存储池。使用 ZFS 时,您还可以为容器设置磁盘配额。以下是该命令的示例,为 ubuntu-test 容器设置 2GB 的磁盘配额:
incus config device override ubuntu-test root size=2GB
正如我之前所说,您可以谨慎使用配置选项,除非您的容器想要使用的资源超过其份额。Incus 在很大程度上会很好地管理环境。
还有许多其他选项可能引起某些人的兴趣。进行自己的研究将帮助您确定其中是否有任何选项在您的环境中具有价值。
作者:Steven Spencer
贡献者:Ezequiel Bruni, Ganna Zhyrnova