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

Розділ 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