资源限制¶
概述¶
自 Rocky 版本发布以来,可以限制已部署容器的资源使用。在 Kolla Ansible 中,要限制的容器资源被称为维度。
Docker 文档 提供了有关容器资源限制的信息。Kolla Ansible 当前支持的资源是
cpu_period
cpu_quota
cpu_shares
cpuset_cpus
cpuset_mems
mem_limit
mem_reservation
memswap_limit
kernel_memory
blkio_weight
ulimits
预部署配置¶
维度被定义为 Docker 资源名称的映射
资源 |
数据类型 |
默认值 |
|---|---|---|
cpu_period |
整数 |
0 |
blkio_weight |
整数 |
0 |
cpu_quota |
整数 |
0 |
cpu_shares |
整数 |
0 |
mem_limit |
整数 |
0 |
memswap_limit |
整数 |
0 |
mem_reservation |
整数 |
0 |
cpuset_cpus |
字符串 |
‘’(空字符串) |
cpuset_mems |
字符串 |
‘’(空字符串) |
ulimits |
Dict |
{} |
变量 default_container_dimensions 设置所有支持的容器的默认维度,默认情况下这些维度是未限制的。
每个支持的容器都有一个关联的变量,<container name>_dimensions,可用于设置容器的资源。例如,nova_libvirt 容器的维度通过变量 nova_libvirt_dimensions 设置。
例如,要限制所有支持的容器可以使用的 CPU 数量,请将以下内容添加到 /etc/kolla/globals.yml 中的维度选项部分
default_container_dimensions:
cpuset_cpus: "1"
例如,要限制 nova_libvirt 容器可以使用的 CPU 数量,请将以下内容添加到 /etc/kolla/globals.yml 中的维度选项部分
nova_libvirt_dimensions:
cpuset_cpus: "2"
如何在 kolla 中配置 ulimits¶
<container_name>_dimensions:
ulimits:
nofile:
soft: 131072
hard: 131072
fsize:
soft: 131072
hard: 131072
有效名称列表可以在 [此处] (https://github.com/docker/go-units/blob/d4a9b9617350c034730bc5051c605919943080bf/ulimit.go#L46-L63) 找到
部署¶
要部署资源受限的容器,请像往常一样运行部署
$ kolla-ansible deploy -i /path/to/inventory