Розділ 7: Параметри конфігурації контейнера¶
У цій главі вам потрібно буде виконувати команди як непривілейований користувач ("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 виділить для контейнера необхідну системну пам’ять, дисковий простір, ядра ЦП тощо. Але що, якщо ми хочемо бути більш конкретними? Це цілком можливо.
Однак для цього є компроміси. Наприклад, якщо ви призначаєте системну пам’ять, а контейнер не використовує її всю, ви зберегли її від іншого контейнера, якому вона насправді може знадобитися. Однак може статися й зворотне. Якщо контейнер займає багато пам’яті, він може перешкоджати іншим контейнерам отримати достатньо, тим самим знижуючи їх продуктивність.
Просто майте на увазі, що кожна ваша дія для налаштування контейнера може мати негативні наслідки в іншому місці.
Замість того, щоб переглядати всі параметри конфігурації, скористайтеся автозаповненням вкладки, щоб побачити доступні параметри:
lxc config set ubuntu-test
i Tab.
Це покаже вам усі параметри для налаштування контейнера. Якщо у вас виникли запитання щодо роботи одного з параметрів конфігурації, перейдіть до офіційної документації для LXD і виконайте пошук за параметром конфігурації або весь рядок у Google, наприклад lxc config set limits.memory
, і подивіться на результати пошуку.
Ми розглянемо кілька найбільш використовуваних параметрів конфігурації. Наприклад, якщо ви хочете встановити максимальний обсяг пам’яті, який може використовувати контейнер:
lxc config set ubuntu-test limits.memory 2GB
Це говорить про те, що поки пам’ять доступна для використання, іншими словами, є 2 Гб вільної пам’яті, тоді контейнер фактично може використовувати більше 2 Гб якщо вона доступна. Іншими словами, це м’яке обмеження.
lxc config set ubuntu-test limits.memory.enforce 2GB
Це говорить про те, що контейнер ніколи не може використовувати більше 2 Гб пам’яті, незалежно від того, доступна вона зараз чи ні. У цьому випадку це жорстке обмеження.
lxc config set ubuntu-test limits.cpu 2
Це говорить про обмеження кількості ядер cpu, які може використовувати контейнер, до 2.
Примітка
Коли цей документ було переписано для Rocky Linux 9.0, репозиторій ZFS для 9 був недоступний. З цієї причини всі наші тестові контейнери були створені з використанням «dir» у процесі ініціалізації. Ось чому в наведеному нижче прикладі показано пул зберігання «dir» замість «zfs».
Пам’ятаєте, коли ми налаштовували наш пул сховищ у розділі про ZFS? Ми назвали пул «сховище», але ми могли назвати його як завгодно. Якщо ми хочемо поглянути на це, ми можемо використати цю команду, яка однаково добре працює для будь-якого іншого типу пулу (як показано для 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 ви також можете встановити дискову квоту для контейнера. Ось як це виглядатиме встановлення дискової квоти розміром 2 Гб для контейнера ubuntu-test.
lxc config device override ubuntu-test root size=2GB
Як було сказано раніше, ви повинні економно використовувати параметри конфігурації, якщо у вас немає контейнера, який хоче використовувати значно більше, ніж його частка ресурсів. LXD, здебільшого, добре керуватиме середовищем самостійно.
Є, звичайно, ще багато варіантів, які можуть зацікавити деяких людей. Ви повинні провести власне дослідження, щоб з’ясувати, чи є щось із цього цінним у вашому середовищі.
Author: Steven Spencer
Contributors: Ezequiel Bruni, Ganna Zhyrnova