第七章: 容器配置选项¶
在本章中,您需要以非特权用户身份运行命令(如果您一直从本书的开头开始操作,则为“lxdadmin”)。
在安装后,有许多选项可以配置容器。然而,在了解这些选项之前,让我们先看一下容器的 info
命令。在本例中,您将使用 ubuntu-test 容器
lxc 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
这里有很多有用的信息,从应用的配置文件,到正在使用的内存、使用的磁盘空间等等。
关于配置和一些选项的一句话¶
默认情况下,LXD 会为容器分配所需的系统内存、磁盘空间、CPU 核心和其他资源。但是,如果您想更具体地设置呢?这是完全可以做到的。
但是,这样做会有权衡。例如,如果您分配了系统内存,而容器没有全部使用,那么您就阻止了另一个可能真正需要这些内存的容器使用它们。然而,相反的情况也会发生。如果容器想要使用超过其内存份额的内存,它可能会阻止其他容器获得足够的内存,从而影响它们的性能。
请记住,您对容器进行的每个配置操作都可能在其他地方产生负面影响。
与其浏览所有配置选项,不如使用 Tab 自动完成功能查看可用的选项
lxc config set ubuntu-test
以及 Tab.
这将显示您配置容器的所有选项。如果您对某个配置选项的作用有任何疑问,请前往 LXD 官方文档 搜索该配置参数,或在 Google 中搜索整个字符串,例如 lxc config set limits.memory
并查看搜索结果。
这里我们将探讨一些最常用的配置选项。例如,如果您想设置容器可以使用的最大内存量
lxc config set ubuntu-test limits.memory 2GB
这意味着,如果内存可用,例如有 2GB 内存可用,那么容器实际上可以使用超过 2GB 的内存,只要它可用。它是一个软限制,例如。
lxc config set ubuntu-test limits.memory.enforce 2GB
这意味着容器永远不能使用超过 2GB 的内存,无论它当前是否可用。在这种情况下,它是一个硬限制。
lxc config set ubuntu-test limits.cpu 2
这意味着将容器可以使用的 CPU 核心数量限制为 2 个。
注意
当本文档为 Rocky Linux 9.0 重写时,9 的 ZFS 仓库不可用。因此,我们所有测试容器都是使用初始化过程中的“dir”构建的。这就是为什么下面的示例显示“dir”而不是“zfs”存储池。
还记得您在 ZFS 章节中设置存储池时的情况吗?您将池命名为“storage”,但您可以将其命名为任何名称。如果您想检查一下,可以使用此命令,此命令同样适用于其他任何池类型(如针对 dir 所示)
lxc 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
lxc config device override ubuntu-test root size=2GB
如前所述,除非您拥有需要使用超过其应有资源份额的容器,否则请谨慎使用配置选项。在大多数情况下,LXD 会自行很好地管理环境。
还有许多其他选项可能对某些人感兴趣。进行自己的研究将帮助您了解其中哪些选项对您的环境有价值。
作者:史蒂文·斯宾塞
贡献者:埃塞基尔·布鲁尼,甘娜·齐尔诺娃