Шаблоны контейнеров в Virtuozzo

50 %
50 %
Information about Шаблоны контейнеров в Virtuozzo

Published on October 29, 2016

Author: ceesecr

Source: slideshare.net

1. Шаблоны контейнеров Денис Силаков, ст. системный архитектор dsilakov@virtuozzo.com

2. Терминология • Контейнер – «легковесное» виртуальное окружение • Внутри гостей – - ядро основной ОС Copyright © 2016 Virtuozzo. All Rights Reserved. 2

3. Технологии • Solaris Zones • FreeBSD Jails • Linux: • LXC • Virtuozzo/OpenVZ • Docker (контейнеры «с наполнением») Copyright © 2016 Virtuozzo. All Rights Reserved. 3

4. Пустой контейнер – плохой контейнер Пользователям нужно наполнение: • Операционная система • Заданный набор приложений Copyright © 2016 Virtuozzo. All Rights Reserved. 4

5. Доставка контента в контейнер • Использование заранее созданных ВМ • Просто и популярно (Docker) • Требует поддержки (“30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities” – BanyanOps, 2015) • Автоматическая установка ОС/приложений после создания контейнера Copyright © 2016 Virtuozzo. All Rights Reserved. 5

6. Автоматическая установка ОС • «Родные» программы установки ОС • Специфичны для каждого дистрибутива Linux • Требуют предварительной конфигурации • Ограниченные возможности автоматической установки • Использование средств хост-системы • LXC c ALT Linux можно развернуть только в ALT Linux • Инструменты установки одной ОС внутри другой • Debootstrap, supermin, rosa-bootstrap – ограничены по функционалу Copyright © 2016 Virtuozzo. All Rights Reserved. 6

7. Средства управления конфигурацией • Ansible, chef, puppet • … в совокупности с Vagrant … Работает, но требует отдельной настройки Copyright © 2016 Virtuozzo. All Rights Reserved. 7

8. Жизнь после установки Мало установить систему, ее надо поддерживать • Устанавливать обновления • Устанавливать/удалять заданные приложения Copyright © 2016 Virtuozzo. All Rights Reserved. 8

9. Инструменты поддержки • Docker – манипулирование «слоями» контейнеров • Недостаточно гибко • Системы управления конфигурациями • Требуют настройки • Многие действия производят изнутри контейнеров нужен доступ в интернет, права администратора, специальный агент и т.п. Copyright © 2016 Virtuozzo. All Rights Reserved. 9

10. Шаблоны контейнеров Virtuozzo • Установка ОС в контейнере «с нуля» • Установка/удаление/обновление наборов программ • Унифицированный интерфейс для всех дистрибутивов Linux • Нет необходимости в модификациях внутри контейнеров (не нужно агентов, ssh-доступа, …) Copyright © 2016 Virtuozzo. All Rights Reserved. 10

11. Дистрибутив Linux == набор пакетов: • Архив с файлами программ • Скрипты Менеджер пакетов: • Распаковка архивов • Выполнение скриптов из пакетов • Выполнение системных триггеров Copyright © 2016 Virtuozzo. All Rights Reserved. 11 Пакет Файлы приложения Скрипты установки / удаления Зависимости от других компонентов ОС

12. Управление пакетами Установка ОС или набора программ == установка нужных пакетов в нужном порядке Простой распаковки недостаточно: • Cкрипты и триггеры • Зависимости между пакетами • Скрипт из пакета A требует утилиту из пакета B • Нюансы, о которых знают только менеджеры пакетов конкретного дистрибутива Copyright © 2016 Virtuozzo. All Rights Reserved. 12

13. Virtuozzo vzpkg* Модифицированные версии менеджеров пакетов для разных дистрибутивов Linux • Заточены на развертывание ОС «с нуля» и ее последующее обслуживание извне контейнера • Способны взаимодействовать с инструментами управления контейнерами Copyright © 2016 Virtuozzo. All Rights Reserved. 13

14. Виды шаблонов • Шаблон ОС • Базовый • Дополнительные вариации CentOS Minimal, CentOS WebServer, … • Шаблоны приложений • PHP, Apache, MySQL, … Copyright © 2016 Virtuozzo. All Rights Reserved. 14

15. Шаблон ОС • Списки пакетов, замкнутые по зависимостям • Скрипты, выполняемые программами установки ОС • Настройка сети, часового пояса, … Copyright © 2016 Virtuozzo. All Rights Reserved. 15 Дополнительный шаблон ОС Базовый шаблон Доп. пакеты Доп. скрипты

16. Установка ОС == подготовка образа диска с установленной ОС • Распаковка минимального окружения с модифицированным менеджером пакетов • Скачивание и распаковка пакетов ОС • Выполнение скриптов из пакетов • Выполнение скриптов установки ОС Copyright © 2016 Virtuozzo. All Rights Reserved. 16

17. Шаблоны приложений • Предназначены для установки поверх конкретного шаблона ОС • Centos-7-x86_64-php • Содержат список пакетов для установки и дополнительные скрипты Copyright © 2016 Virtuozzo. All Rights Reserved. 17

18. Работа с шаблонами Утилита командной строки vzpkg • Создание и обновление кэша шаблонов • Во избежание повторной распаковки набора пакетов • Установка/удаление шаблонов приложений в контейнерах • Обновление пакетов, относящихся к шаблону Copyright © 2016 Virtuozzo. All Rights Reserved. 18

19. Challenges • Поддержка разных пакетных менеджеров • Различные кодовые базы (yum, zypper, dpkg/apt) • Различные условия сборки • Обновления при обновлении ОС • Скрипты установки ОС Copyright © 2016 Virtuozzo. All Rights Reserved. 19

20. Изменения в пакетных менеджерах • Установка пакетов в заданный контейнер • Работа с идентификаторами пользователей/групп • Обработка зависимостей • … • Работа с VZFS • «Слияние» одинаковых файлов из разных контейнеров • Больше не нужна (в Virtuozzo 7 заменена на pfcache) Размер: 1-3KLoC (50% - поддержка VZFS) Copyright © 2016 Virtuozzo. All Rights Reserved. 20

21. Использование • Командная строка • Шаблон – параметр при создании контейнера • Vzpkg – «пакетный менеджер» для шаблонов • GUI – Virtuozzo Automator Copyright © 2016 Virtuozzo. All Rights Reserved. 21

22. Командная строка # prlctl create c1 --ostemplate ubuntu-16.04-x86_64 --vmtype=ct # vzpkg install c1 php # vzpkg update c1 ubuntu-16.04-x86_64 # vzpkg remove c1 php Copyright © 2016 Virtuozzo. All Rights Reserved. 22

23. Настройки vzpkg • Списки пакетов, скрипты – в текстовом виде • Репозитории-источники пакетов • Ключи для доступа к закрытым репозиториям по подписке Copyright © 2016 Virtuozzo. All Rights Reserved. 23

24. Ресурсы • Шаблоны Virtuozzo https://src.openvz.org/projects/OVZT • Инструментарий управления шаблонами https://src.openvz.org/projects/OVZ/repos/vztt Copyright © 2016 Virtuozzo. All Rights Reserved. 24

Add a comment