Установка и настройка LXC на Debian8

1.Установка LXС и необходимых утилит

 

Проверка наличия и расположения cgroup( в Debian/Ubuntu cgroup уже смонтирована)

 

В данном случае cgroup расположен в /sys/fs
Если cgroup не смонтирован,то монтируем вручную

 

Проверка поддержки разделения виртуальной памяти

 

Включение поддержки разделения виртуальной памяти

Обновление загрузчика и перезагрузка

 

Проверка параметров LXC/корректность установки LXC

 

Размещение LXC-данных

— размещенеие контейнеров, их настройки, ФС и так далее;

— прочие настройки;

— изменение настроек сети;

— кэш шаблонов;

— размещение snapshot-ов;

— логи;

 

Файл конфигурации контейнера размещается по пути

 

Просмотр шаблонов операционных систем возможных для установки

 

2. Создание контейнера

, где
-n debian8 — имя контейнера
-t debian – тип контейнера – шаблон,который будет использоваться для создания контейнера

 

Проверка состояния контейнеров

 

Добавление контейнера в автозагрузку

 

Запуск контейнера в фоновом режиме

 

Вход в контейнер

 

Выход с контейнера в ноду <Ctrl+a q>

 

Остановка контейнера

 

3.Настройка сети на ноде и в контейнере для выпуска контейнеров в Интернет

Использование сетевого стека хост-системы (type = veth)
При запуске контейнера с таким типом сети, на хост-машине создается специальный виртуальный интерфейс (в примере ниже, он называется veth-*). Этот виртуальный интерфейс фактически и использует контейнер для взаимодействия с внешней средой.

Включение маршрутизации

 

NAT-режим

Добавление нового интерфейса

 

 

 

Настройка iptables

Или, если внешний адрес нода получает динамически

 

Настройка конфигурационного файла контейнера(предварительно останавливаем контейнер)

 

В результате, данный контейнер должен получить при старте ip=192.168.10.10 и через шлюз 192.168.10.1, и далее через 192.168.1.85 — выход в сеть.

Теперь подключаемся к контейнера по SSH

 

Bridge-интерфейс

 

 

 

Настройка конфигурационного файла контейнера(предварительно останавливаем контейнер)

 

Запуск контейнера и проверка доступности его по сети

Вход по сети на контейнер и проверки наличия доступа в Интернет с контейнера

 

4.Полезные команды LXC
Подразумевается, что имя контейнера debian8

 

Создать новый контейнер LXC

В команду lxc-create можно передать параметры, в том числе желаемую версию дистрибутива. Чтобы узнать, какие параметры принимает шаблон следует выполнить
Для установки Debian

Для установки Centos

В Debian8 по умолчанию устанавливается Centos версии 6
Для установки Centos7 используем команду

Для установки Ubuntu

 

Запуск контейнера в фоновом режиме(без подключения к консоли)

 

Запуск контейнера с логированием для диагностики проблемы при запуске контейнера

 

Проверка состояния контейнеров

 

Просмотр подробной информации о контейнере

 

Вход в контейнер/подключение к консоли контейнера

 

Остановка контейнера

 

Удаление контейнера

 

Создание клона контейнера

 

Заморозка/разморозка контейнера:

 

Создание снапшота(контейнер должен быть остановлен предварительно)

 

Список снапшотов

 

Восстановление из снепшота

 

Выполнить указанную команду внутри контейнера

 

Мониторинг состояния контейнеров

 

Ждать определённого состояния контейнера; завершаться, когда состояние достигнуто

 

Управление cgroup-группами контейнера

 

5.Ограничение ресурсов контейнера с помощью cgroup

lxc-cgroup получает или устанавливает значения cgroup ассоциированных с именем контейнера

RAM/SWAP

Ограничения применяемые на лету сбрасываются после перезагрузки контейнера
Просмотр доступной памяти контейнеру

 

Ограничим размер оперативной пямяти для контейнера в размере 512MB

 

Проверяем наши изменения

 

Для того, чтобы изменения сохранялись при перезагрузке контейнера необходимо добавить их в файл с настройками контейнера

Изменения в этом файле вступят в силу после перезагрузки контейнера

 

Проверка размера доступной для контейнера оперативной памяти

Либо можно воспользоваться запуском контейнера с логированием и фильтрацией лога запуска контейнера

Либо с помощью cgroup

 

Ограниечение на swap-раздел

Например, установлен лимит на использование оперативной памяти 512MB

Для установки лимита на использование суммы оперативной памяти и swap используется параметр memory.memsw.limit_in_bytes, который ОБЯЗАТЕЛЬНО должен быть указан после параметра memory.limit_in_bytes.
Например, ограничим размер swap-раздела 1024M

 

CPU

— выделение конкретного ядра/ядер

— приоритет (по умолчанию равно 1024)
В конфигурационном файле контейнера (выделяем под контейнер первых два ядра процессора):
Чтобы изменения сохранились после перезагрузки

Чтобы изменения применились до перезагрузки

Проверка значений

 

Источник:
http://eax.me/lxc/
http://xgu.ru/wiki/LXC
http://serverfault.com/questions/444232/limit-memory-and-cpu-with-lxc-execute/471276#471276
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/index.html

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика