docker & puppet: как их скрестить и надо ли вам это?
TRANSCRIPT
![Page 1: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/1.jpg)
Docker & Puppet:как их скреститьи надо ли вам это?Антон ТурецкийСистемный инженер, Badoo
![Page 2: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/2.jpg)
• Предыстория6• Подготовка инфраструктуры6• Ключевые узлы Docker6• Puppet: от прототипа до конвейра6• Система сборки образов Docker6• Deploy сервиса с точки зрения эксплуатации6• “Грабли”, на которые наступили6• Чего не хватает для счастья в Docker?6• Заключение
Содержание
![Page 3: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/3.jpg)
• Docker: что это такое?6• С какой стороны подойти?6• Что мы хотели получить?
Предыстория
![Page 4: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/4.jpg)
Предыстория• Docker: что это такое?6• С какой стороны подойти?6• Что мы хотели получить?66
6
Необходимое и достаточное окружение для запуска и работы сервиса
![Page 5: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/5.jpg)
Предыстория• Docker: что это такое?6• С какой стороны подойти?6• Что мы хотели получить?6• Необходимое и достаточное окружение
для запуска и работы сервиса66
Быстрый и простой deployment?6
6
![Page 6: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/6.jpg)
Предыстория• Docker: что это такое?6• С какой стороны подойти?6• Что мы хотели получить?6• Необходимое и достаточное окружение
для запуска и работы сервиса6• Быстрый и простой deployment6
6
Резервирование?6
6
![Page 7: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/7.jpg)
Предыстория• Docker: что это такое?6• С какой стороны подойти?6• Что мы хотели получить?6• Необходимое и достаточное окружение
для запуска и работы сервиса6• Быстрый и простой deployment6• Резервирование6
6
Уменьшение времени деградациисервиса при обновлении(перезапуске)?
![Page 8: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/8.jpg)
Предыстория• Docker: что это такое?6• С какой стороны подойти?6• Что мы хотели получить?6• Необходимое и достаточное окружение
для запуска и работы сервиса6• Быстрый и простой deployment6• Резервирование6• Уменьшение времени деградации сервиса при
обновлении(перезапуске)6
Использовать оборудование“на полную катушку”
![Page 9: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/9.jpg)
Подготовка инфраструктуры• Linux kernel version 3.8 or above != 3.0.101-0.40.16• обновление util-linux, coreutils6• обновление iptables, iproute26
• Выбор “Storage Driver”6• Device mapper + ext46• BTRFS6
• Близкое знакомство с cgroups6• Изменение Partitioning Table66
P.S.: Хорошо, что Puppet придумали раньше!
![Page 10: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/10.jpg)
Ключевые узлы Docker
![Page 11: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/11.jpg)
А если сервер не один!?
• Добавляем репозиторий, ставим нужные пакеты6• Меняем разбивку LVM, говорим: “Привет BTRFS”6• cgroup_enable=memory swapaccount=16• Docker:6• base package, settings6• init script (да, тут еще нет systemd)6• вспомогательные скрипты
![Page 12: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/12.jpg)
Сборка образов для Docker
![Page 13: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/13.jpg)
Роль Puppet• Поддержка BUILD environment6
• Сборка образов и оповещение о результатах6
• Своевременный PUSH образа в Registry6
• Своевременный PULL образа на Docker Host6
• Поддержание чистоты и порядка на Docker Hosts6
• удаление не нужных образов/контейнеров6
• формирование команд для запуска контейнеров
![Page 14: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/14.jpg)
DownTime: перезапуск сервиса
![Page 15: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/15.jpg)
DownTime: перезапуск сервиса
![Page 16: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/16.jpg)
DownTime: перезапуск сервиса
• Добавим балансировщик по вкусу6• Используем key => value storage6• confd: наполняем по
шаблону6• Не трогаем “внешнюю” сеть6• не нужно трогать dns6• не нужно трогать dhcp6• …
![Page 17: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/17.jpg)
• NF conntrack?• nf_conntrack: table full, dropping packet6
RESOLUTION:6
“Грабли”, на которые наступили
![Page 18: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/18.jpg)
• NF conntrack?• nf_conntrack: table full, dropping packet6
RESOLUTION:61. docker run --net=host62. iptables rules:6-t raw -I PREROUTING -j CT --notrack6-t raw -I OUTPUT -j CT --notrack
“Грабли”, на которые наступили
![Page 19: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/19.jpg)
• NF conntrack6• device mapper + ext4 as storage backend?
RESOLUTION: 66
6
“Грабли”, на которые наступили
![Page 20: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/20.jpg)
• NF conntrack6• device mapper + ext4 as storage backend?
RESOLUTION: 66
6
BTRFS as storage driver
“Грабли”, на которые наступили
![Page 21: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/21.jpg)
• NF conntrack6• device mapper + ext4 as storage backend6• VOLUME mapping
“Грабли”, на которые наступили
![Page 22: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/22.jpg)
• Централизованный мониторинг Docker Hosts6
• Cadvisor + доработки6
• Централизованного управления хостами/
сервисами6
• внимание, shipyard!6
• Более тесной интеграции с 6
• weave6
• Open VSwitch
Чего не хватает для счастья?
![Page 23: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/23.jpg)
Заключение
• ”Уплотнили” количество сервисов в расчете на сервер6
• Построили избыточную карту сервисов6
• Построили систему сборки образов6
• Получили гарантию работы сервиса любой ранее работающей версии в
любой момент времени6
• Не отстали от нового тренда
![Page 24: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/24.jpg)
Спасибо
![Page 25: Docker & Puppet: как их скрестить и надо ли вам это?](https://reader031.vdocuments.mx/reader031/viewer/2022013121/55a2baac1a28ab495f8b467a/html5/thumbnails/25.jpg)
Useful Links
#codefest2014 #Puppet : goo.gl/dG0hJD6#hl2012 #Puppet : http://goo.gl/5FNwuD
Вопросы?Антон Турецкий
[email protected]@tyrchenok6@BadooDev 6
http://habrahabr.ru/company/badoo/