SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Развёртывание приложений Docker
в контейнерах Virtuozzo
Развёртывание приложений Docker
в контейнерах Virtuozzo
Павел Тихомиров
ПланПлан
• Почему Docker?
• Сравнение Docker, VZ контейнеров и Виртуальных машин
• Проблемы и решения
• Пример развертывания Docker
2
Что такое Docker и что он может?Что такое Docker и что он может?
• Система разработки, распространения и менеджмента приложений
– Создавать легко переносимые приложения
– Делиться приложениями на Docker Hub
– Распределенные приложения
• Содержит более 100,000 приложений
• Web-приложения(Wordpress, Apache, MySQL), тестовые среды(docker-
dev, CRIU) и менеджмент контейнеров(Compose, Kubernetes, cAdvisor)
3
Docker на хостеDocker на хосте
5
+ Низкие накладные
расходы
- Для одного пользователя
- Только доверенные
приложения
Docker в виртуальных машинахDocker в виртуальных машинах
6
+ Многопользовательская
аренда
- Высокие накладные
расходы
Docker в Virtuozzo контейнерахDocker в Virtuozzo контейнерах
7
+ Многопользовательская
аренда
+ Низкие накладные
расходы
Проблемы возникавшие с Docker в VZ контейнерахПроблемы возникавшие с Docker в VZ контейнерах
• Вложенные namespace'ы
• Вложенные cgroup'ы
• Сеть внутри Viruozzo контейнеров
• Альтернатива VFS граф-драйверу
8
Вложенные namespace'ыВложенные namespace'ы
• Docker использует clone NEW_{NET,IPC,UTS,MNT,PID}
• Разборка вложенных netns при остановке CT
• Мигрировать CT с вложенными ns нельзя(ограничено в VZ6)
• Capabilitiles – части нет в 2.6.32-ядрах(ограничены в VZ6)
• Добавили CAP_LAST_CAP и Child sub-reaper из мейнстрима
9
Вложенные cgroup'ыВложенные cgroup'ы
• Распространение ограничений на количество доступных cpu
• Распространение ограничений сpuset маски
• Эмулируем memory контроллер через наши beancounter'ы
• Конфигурируем systemd и патчим dind чтобы понимали наши мульти-
иерархии
• Простая реализация cgroup nsamespace
10
Сеть внутри Virtuozzo контейнеровСеть внутри Virtuozzo контейнеров
• Создание и конфигурация veth и bridge в CT
• Проблема с forwarding таблицами bridge
• Не поддерживаются bridge в Docker CT в VZ CT(sysfs)(ограничено в VZ6)
11
Альтернатива VFS граф-драйверуАльтернатива VFS граф-драйверу
• Только VFS граф-драйвер для Docker
– Были dm-thin и btrfs
– Нельзя дать полный доступ к блочному устройству
– Внешняя модификация образа диска под контейнером опасна для хоста
• Наш proxy граф-драйвер https://github.com/mpatlasov/docker
– Проксируем(контролируем) запросы через демон на хосте
• Мейнстримный граф-драйвер(Brian Goff из Docker'а)
– Успешно предложили изменения в дизайн
– Сможем использовать12
Извесные ограниченияИзвесные ограничения
• Запрещена миграция при вложенных пространствах имен
• Proxy граф-драйвера пока нет в мейнстриме
• Не поддерживаются bridge внутри Docker CT внутри VZ CT
• Игнорируем выходящие за рамки Capability
13
ТестированиеТестирование
• Основные приложения
• Нагрузочные тесты
• Используем docker test-suit
• Docker быстро развивается и требователен к ядру
14
ПримерПример
• Compose + Docker + Wordpress + MySQL
15
РезюмеРезюме
• Virtuozzo CT - многопользовательский Docker на одном хосте без
накладных расходов
• Столкнулисть с проблемами и решили их, осталось несколько
ограничений
• Будем использовать мейнстримный proxy graph-driver
• Docker быстро развивается и требователен к ядру – поддерживаем
новые фичи по мере появления
16
●
Запускаем Docker в Virtuozzo контейнерах:
http://kb.odin.com/en/125115
●
Запускаем Docker в OpenVZ:
https://openvz.org/Docker_inside_CT
●
Наш proxy граф-драйвер:
https://github.com/mpatlasov/docker
●
Запускаем Docker в Virtuozzo контейнерах:
http://kb.odin.com/en/125115
●
Запускаем Docker в OpenVZ:
https://openvz.org/Docker_inside_CT
●
Наш proxy граф-драйвер:
https://github.com/mpatlasov/docker
Павел Тихомиров <ptikhomirov@virtuozzo.com>

Mais conteúdo relacionado

Mais procurados

Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе dockerIvan Grishaev
 
Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядноDocker - быстро, просто, наглядно
Docker - быстро, просто, наглядноFallenKain
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupBadoo Development
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Ontico
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25Alex Chistyakov
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Fwdays
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ciАлександр Сигачев
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революцияGetDev.NET
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиAndrey Markelov
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to productionAnton Turetsky
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...MoscowJS
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanesPavel Emelyanov
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Ontico
 
Ansible in the enterprise
Ansible in the enterpriseAnsible in the enterprise
Ansible in the enterpriseAlex Chistyakov
 
Hl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHighLoad2009
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Ontico
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsKirill Danilov
 

Mais procurados (20)

Ci на базе docker
Ci на базе dockerCi на базе docker
Ci на базе docker
 
Docker. Основы
Docker. ОсновыDocker. Основы
Docker. Основы
 
Docker - быстро, просто, наглядно
Docker - быстро, просто, наглядноDocker - быстро, просто, наглядно
Docker - быстро, просто, наглядно
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Docker 1.9
Docker 1.9Docker 1.9
Docker 1.9
 
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
Кит на службе у человека microPaaS Deis / Алексей Медведчиков (2ГИС)
 
My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25My talk on Docker from Moscow Django Meetup #25
My talk on Docker from Moscow Django Meetup #25
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
Процесс разработки и тестирования с Docker + gitlab ci
Процесс разработки и тестирования с  Docker + gitlab ciПроцесс разработки и тестирования с  Docker + gitlab ci
Процесс разработки и тестирования с Docker + gitlab ci
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Docker: from understanding to production
Docker: from understanding to productionDocker: from understanding to production
Docker: from understanding to production
 
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ..."nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
"nw.js: введение в кросс-платформенные декстопные приложения на JavaScript", ...
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Teach your dockers to use CRanes
Teach your dockers to use CRanesTeach your dockers to use CRanes
Teach your dockers to use CRanes
 
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
 
Ansible in the enterprise
Ansible in the enterpriseAnsible in the enterprise
Ansible in the enterprise
 
Hl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 Pantyukhin
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.js
 

Semelhante a Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров

Docker в виртуальной среде VMware
Docker в виртуальной среде VMwareDocker в виртуальной среде VMware
Docker в виртуальной среде VMwareAndrey Konovalov
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на DockerМихаил Бакулин
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersStas Pavlov
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годAnton Turetsky
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годBadoo Development
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Ontico
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон ТурецкийCodeFest
 
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомDocker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомAnton Turetsky
 
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииAlexander Kirillov
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureStas Pavlov
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...Provectus
 
Virtuozzo platform
Virtuozzo platformVirtuozzo platform
Virtuozzo platformru_Parallels
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStackRussia
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Vad Tymoshyk
 
Станислав Иващенко: “Kubernetes как облако для CI”
Станислав Иващенко: “Kubernetes как облако для CI” Станислав Иващенко: “Kubernetes как облако для CI”
Станислав Иващенко: “Kubernetes как облако для CI” Provectus
 
[ISC] Docker + Swarm
[ISC] Docker + Swarm[ISC] Docker + Swarm
[ISC] Docker + Swarmyalegko
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Ontico
 
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoCEE-SEC(R)
 

Semelhante a Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров (20)

Docker в виртуальной среде VMware
Docker в виртуальной среде VMwareDocker в виртуальной среде VMware
Docker в виртуальной среде VMware
 
Локальное окружение на Docker
Локальное окружение на DockerЛокальное окружение на Docker
Локальное окружение на Docker
 
DevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and ContainersDevCon School. Azure Microservices and Containers
DevCon School. Azure Microservices and Containers
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через годDocker в работе: взгляд на использование в Badoo через год
Docker в работе: взгляд на использование в Badoo через год
 
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Docker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутомDocker & Badoo: 
никогда не останавливайся на достигнутом
Docker & Badoo: 
никогда не останавливайся на достигнутом
 
Окружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризацииОкружение разработчика - от виртуализации к контейнеризации
Окружение разработчика - от виртуализации к контейнеризации
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке Azure
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Virtuozzo platform
Virtuozzo platformVirtuozzo platform
Virtuozzo platform
 
Docker
DockerDocker
Docker
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Docker&Azure
Docker&AzureDocker&Azure
Docker&Azure
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
 
Станислав Иващенко: “Kubernetes как облако для CI”
Станислав Иващенко: “Kubernetes как облако для CI” Станислав Иващенко: “Kubernetes как облако для CI”
Станислав Иващенко: “Kubernetes как облако для CI”
 
[ISC] Docker + Swarm
[ISC] Docker + Swarm[ISC] Docker + Swarm
[ISC] Docker + Swarm
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в Virtuozzo
 

Mais de OpenVZ

PFcache - LinuxCon 2015
PFcache - LinuxCon 2015PFcache - LinuxCon 2015
PFcache - LinuxCon 2015OpenVZ
 
Speeding up ps and top
Speeding up ps and topSpeeding up ps and top
Speeding up ps and topOpenVZ
 
Live migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel EmelyanovLive migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel EmelyanovOpenVZ
 
Live migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel EmelyanovLive migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel EmelyanovOpenVZ
 
CRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir KolyshkinCRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir KolyshkinOpenVZ
 
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015OpenVZ
 
Живая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел ЕмельяновЖивая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел ЕмельяновOpenVZ
 
What's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey BronnikovWhat's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey BronnikovOpenVZ
 
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий МонаховПроблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий МонаховOpenVZ
 
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан КупреевOpenVZ
 
LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр БурлукаOpenVZ
 
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовУправление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовOpenVZ
 
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел ЕмельяновЖивая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел ЕмельяновOpenVZ
 
LibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginLibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginOpenVZ
 
Denser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel EmelyanovDenser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel EmelyanovOpenVZ
 
CGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel EmelyanovCGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel EmelyanovOpenVZ
 
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...OpenVZ
 
Not so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinNot so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinOpenVZ
 
Openvz booth
Openvz boothOpenvz booth
Openvz boothOpenVZ
 
Управление ресурсами в Linux и OpenVZ
Управление ресурсами в Linux и OpenVZ Управление ресурсами в Linux и OpenVZ
Управление ресурсами в Linux и OpenVZ OpenVZ
 

Mais de OpenVZ (20)

PFcache - LinuxCon 2015
PFcache - LinuxCon 2015PFcache - LinuxCon 2015
PFcache - LinuxCon 2015
 
Speeding up ps and top
Speeding up ps and topSpeeding up ps and top
Speeding up ps and top
 
Live migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel EmelyanovLive migration: pros, cons and gotchas -- Pavel Emelyanov
Live migration: pros, cons and gotchas -- Pavel Emelyanov
 
Live migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel EmelyanovLive migrating a container: pros, cons and gotchas -- Pavel Emelyanov
Live migrating a container: pros, cons and gotchas -- Pavel Emelyanov
 
CRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir KolyshkinCRIU: time and space travel for Linux containers -- Kir Kolyshkin
CRIU: time and space travel for Linux containers -- Kir Kolyshkin
 
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
Тестирование ПО, основанного на сторонних компонентах - Денис Силаков, SECR 2015
 
Живая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел ЕмельяновЖивая миграция: плюсы, минусы и подводные камни - Павел Емельянов
Живая миграция: плюсы, минусы и подводные камни - Павел Емельянов
 
What's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey BronnikovWhat's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey Bronnikov
 
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий МонаховПроблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
Проблема фрагментации виртуальных дисков и способы её решения -- Дмитрий Монахов
 
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан КупреевCRIU: ускорение запуска PHP в CloudLinux OS  -- Руслан Купреев
CRIU: ускорение запуска PHP в CloudLinux OS -- Руслан Купреев
 
LibCT и контейнеры на уровне приложений -- Александр Бурлука
	LibCT и контейнеры на уровне приложений -- Александр Бурлука	LibCT и контейнеры на уровне приложений -- Александр Бурлука
LibCT и контейнеры на уровне приложений -- Александр Бурлука
 
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир ДавыдовУправление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
Управление памятью контейнеров в проекте OpenVZ -- Владимир Давыдов
 
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел ЕмельяновЖивая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
Живая миграция контейнеров: плюсы, минусы, подводные камни -- Павел Емельянов
 
LibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey VaginLibCT: one lib to rule them all -- Andrey Vagin
LibCT: one lib to rule them all -- Andrey Vagin
 
Denser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel EmelyanovDenser containers with PF cache - Pavel Emelyanov
Denser containers with PF cache - Pavel Emelyanov
 
CGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel EmelyanovCGroups kernel memory controller -- Pavel Emelyanov
CGroups kernel memory controller -- Pavel Emelyanov
 
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
What's missing from upstream kernel containers? - Kir Kolyshkin, Sergey Bronn...
 
Not so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir KolyshkinNot so brief history of Linux Containers - Kir Kolyshkin
Not so brief history of Linux Containers - Kir Kolyshkin
 
Openvz booth
Openvz boothOpenvz booth
Openvz booth
 
Управление ресурсами в Linux и OpenVZ
Управление ресурсами в Linux и OpenVZ Управление ресурсами в Linux и OpenVZ
Управление ресурсами в Linux и OpenVZ
 

Развёртывание приложений Docker в контейнерах Virtuozzo -- Павел Тихомиров

  • 1. Развёртывание приложений Docker в контейнерах Virtuozzo Развёртывание приложений Docker в контейнерах Virtuozzo Павел Тихомиров
  • 2. ПланПлан • Почему Docker? • Сравнение Docker, VZ контейнеров и Виртуальных машин • Проблемы и решения • Пример развертывания Docker 2
  • 3. Что такое Docker и что он может?Что такое Docker и что он может? • Система разработки, распространения и менеджмента приложений – Создавать легко переносимые приложения – Делиться приложениями на Docker Hub – Распределенные приложения • Содержит более 100,000 приложений • Web-приложения(Wordpress, Apache, MySQL), тестовые среды(docker- dev, CRIU) и менеджмент контейнеров(Compose, Kubernetes, cAdvisor) 3
  • 4. Docker на хостеDocker на хосте 5 + Низкие накладные расходы - Для одного пользователя - Только доверенные приложения
  • 5. Docker в виртуальных машинахDocker в виртуальных машинах 6 + Многопользовательская аренда - Высокие накладные расходы
  • 6. Docker в Virtuozzo контейнерахDocker в Virtuozzo контейнерах 7 + Многопользовательская аренда + Низкие накладные расходы
  • 7. Проблемы возникавшие с Docker в VZ контейнерахПроблемы возникавшие с Docker в VZ контейнерах • Вложенные namespace'ы • Вложенные cgroup'ы • Сеть внутри Viruozzo контейнеров • Альтернатива VFS граф-драйверу 8
  • 8. Вложенные namespace'ыВложенные namespace'ы • Docker использует clone NEW_{NET,IPC,UTS,MNT,PID} • Разборка вложенных netns при остановке CT • Мигрировать CT с вложенными ns нельзя(ограничено в VZ6) • Capabilitiles – части нет в 2.6.32-ядрах(ограничены в VZ6) • Добавили CAP_LAST_CAP и Child sub-reaper из мейнстрима 9
  • 9. Вложенные cgroup'ыВложенные cgroup'ы • Распространение ограничений на количество доступных cpu • Распространение ограничений сpuset маски • Эмулируем memory контроллер через наши beancounter'ы • Конфигурируем systemd и патчим dind чтобы понимали наши мульти- иерархии • Простая реализация cgroup nsamespace 10
  • 10. Сеть внутри Virtuozzo контейнеровСеть внутри Virtuozzo контейнеров • Создание и конфигурация veth и bridge в CT • Проблема с forwarding таблицами bridge • Не поддерживаются bridge в Docker CT в VZ CT(sysfs)(ограничено в VZ6) 11
  • 11. Альтернатива VFS граф-драйверуАльтернатива VFS граф-драйверу • Только VFS граф-драйвер для Docker – Были dm-thin и btrfs – Нельзя дать полный доступ к блочному устройству – Внешняя модификация образа диска под контейнером опасна для хоста • Наш proxy граф-драйвер https://github.com/mpatlasov/docker – Проксируем(контролируем) запросы через демон на хосте • Мейнстримный граф-драйвер(Brian Goff из Docker'а) – Успешно предложили изменения в дизайн – Сможем использовать12
  • 12. Извесные ограниченияИзвесные ограничения • Запрещена миграция при вложенных пространствах имен • Proxy граф-драйвера пока нет в мейнстриме • Не поддерживаются bridge внутри Docker CT внутри VZ CT • Игнорируем выходящие за рамки Capability 13
  • 13. ТестированиеТестирование • Основные приложения • Нагрузочные тесты • Используем docker test-suit • Docker быстро развивается и требователен к ядру 14
  • 14. ПримерПример • Compose + Docker + Wordpress + MySQL 15
  • 15. РезюмеРезюме • Virtuozzo CT - многопользовательский Docker на одном хосте без накладных расходов • Столкнулисть с проблемами и решили их, осталось несколько ограничений • Будем использовать мейнстримный proxy graph-driver • Docker быстро развивается и требователен к ядру – поддерживаем новые фичи по мере появления 16
  • 16. ● Запускаем Docker в Virtuozzo контейнерах: http://kb.odin.com/en/125115 ● Запускаем Docker в OpenVZ: https://openvz.org/Docker_inside_CT ● Наш proxy граф-драйвер: https://github.com/mpatlasov/docker ● Запускаем Docker в Virtuozzo контейнерах: http://kb.odin.com/en/125115 ● Запускаем Docker в OpenVZ: https://openvz.org/Docker_inside_CT ● Наш proxy граф-драйвер: https://github.com/mpatlasov/docker Павел Тихомиров <ptikhomirov@virtuozzo.com>