Перейти до змісту

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 автоматично призначить контейнеру необхідну системну пам’ять, дисковий простір, ядра ЦП та інші ресурси. Але що, якщо ми хочемо бути більш конкретними? Це можливо.

Для цього є компроміси. Наприклад, якщо ви призначаєте системну пам’ять і контейнер не використовує всю її, ви зберегли її від іншого контейнера, якому вона може знадобитися. Може статися і зворотне. Якщо контейнер хоче використовувати більше пам’яті, ніж його частка, це може перешкодити іншим контейнерам отримати достатньо, тим самим знизивши їх продуктивність.

Просто пам’ятайте, що кожна ваша дія для налаштування контейнера може мати несприятливі наслідки в іншому місці.

Замість того, щоб переглядати всі параметри конфігурації, скористайтеся автозаповненням вкладки, щоб побачити доступні параметри:

incus config set ubuntu-test

i Tab.

Це покаже вам усі параметри для налаштування контейнера. Якщо у вас є запитання щодо того, що робить один із параметрів конфігурації, перейдіть до офіційної документації для Incus і виконайте пошук параметра конфігурації або введіть у Google увесь рядок, наприклад incus config set limits.memory, і перегляньте результати пошуку.

Тут ми розглянемо кілька найбільш використовуваних параметрів конфігурації. Наприклад, якщо ви хочете встановити максимальний обсяг пам’яті, який може використовувати контейнер:

incus config set ubuntu-test limits.memory 2GB

Це означає, що якщо доступна пам'ять, наприклад, 2 ГБ, контейнер може використовувати більше 2 ГБ. Іншими словами, це м’яке обмеження.

incus config set ubuntu-test limits.memory.enforce 2GB

Це означає, що контейнер ніколи не може використовувати більше 2 ГБ пам’яті, незалежно від того, доступна вона зараз чи ні. У цьому випадку це жорстке обмеження.

incus config set ubuntu-test limits.cpu 2

Це говорить про обмеження кількості ядер ЦП, які може використовувати контейнер, до 2.

Примітка

Коли цей документ було переписано для Rocky Linux 9.0, репозиторій ZFS для 9 був недоступний. З цієї причини всі наші тестові контейнери були створені за допомогою «dir» під час початкового процесу ініціалізації. У наведеному нижче прикладі показано пул сховищ «dir» замість пулу сховищ «zfs».

Пам’ятаєте, коли ми налаштовували наш пул сховищ у розділі про ZFS? Ми назвали пул «сховище», але ми могли назвати його як завгодно. Якщо ми хочемо поглянути на це, ми можемо використати цю команду, яка однаково добре працює для будь-якого іншого типу пулу (як показано для 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 ви також можете встановити дискову квоту для контейнера. Ось як це виглядатиме встановлення дискової квоти розміром 2 Гб для контейнера ubuntu-test.

incus config device override ubuntu-test root size=2GB

Як я вже говорив раніше, ви можете економно використовувати параметри конфігурації, якщо у вас немає контейнера, який хоче використовувати більше ресурсів, ніж його частка. Incus, здебільшого, добре керуватиме навколишнім середовищем.

Є, звичайно, ще багато варіантів, які можуть зацікавити деяких людей. Проведення власного дослідження допоможе вам визначити, чи є щось із цього цінним у вашому оточенні.

Author: Steven Spencer

Contributors: Ezequiel Bruni, Ganna Zhyrnova