openstack и docker: вместе и по отдельности

17
OpenStack и Docker: вместе и по отдельности Андрей Маркелов markelov.blogspot.com OpenStack Russia РИТ++ Meetup 21 мая 2015

Upload: openstackrussia

Post on 05-Aug-2015

164 views

Category:

Software


1 download

TRANSCRIPT

Page 1: OpenStack и Docker: вместе и по отдельности

OpenStack и Docker:вместе и по отдельности

Андрей Маркелов markelov.blogspot.com

OpenStack Russia РИТ++ Meetup

21 мая 2015

Page 2: OpenStack и Docker: вместе и по отдельности

План презентации

● Контейнеры и виртуализация

● Docker● Использование

Docker совместно с OpenStack

Page 3: OpenStack и Docker: вместе и по отдельности

Контейнеры и виртуализация

● Разные концепции:– Виртуализация – вертикальное абстрагирование;

– Контейнеры – горизонтальное разбиение;

● Контейнеры используются для замены виртуализации там, где они справляются лучше:

– Горизонтальная изоляция приложений;

– Делегирование окружений;

– Виртуализация приложений;

– Максимальная плотность.

● Зачастую контейнеры используются поверх виртуализации.

Page 4: OpenStack и Docker: вместе и по отдельности

Контейнеры в Linux

Page 5: OpenStack и Docker: вместе и по отдельности

Namespaces (пространства имен)

● Mount namespaces– Mount(),umount()

● UTS namespaces

– Uname()

● IPC namespaces

– Объекты System V IPC, Очереди сообщений POSIX

● PID namespaces

– /proc, PID

● Network namespaces

– Сетевые карты, брандмауэр, табл. маршрутизации

Page 6: OpenStack и Docker: вместе и по отдельности

CGroups

● Десять групп● Основные группы:

– Cpu

– Memory

– Blkio

Page 7: OpenStack и Docker: вместе и по отдельности

Мандатный контроль доступа

● Интеграция с ядром– LSM и расширенные атрибуты

● Для чего использовать:

– Запуск с минимальными привилегиями

– Защита от эксплоитов

– Защита пользовательских данных

● Для чего не предназначена:

– Аудит кода

– Шифрование

– Обновления

Page 8: OpenStack и Docker: вместе и по отдельности

Docker – изменил правила игры

● Docker CLI – интересен, но это не столь значительное нововведение. Технологии, позволяющие создавать контейнеры в GNU/Linux > 10 лет

● Docker интересен как формат упаковки и распространения приложений.

Page 9: OpenStack и Docker: вместе и по отдельности

Docker – терминология

● Контейнер – запущенное из образа приложение.● Образ – статический снимок конфигурации

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

● Образ платформы – не имеющий родительских образов. Содержит базовые библиотеки и утилиты для запуска приложений.

Page 10: OpenStack и Docker: вместе и по отдельности

Docker – упаковка приложений

● API и формат образов:– перемещаемость контейнеров между хостами;

– контроль версий и повторное использование компонентов;

– удаленный репозиторий образов;

– Dockerfile – шаблон конфигурации для сборки образов;

– Для разделения различных уровней контейнера на уровне файловой системы могут использоваться AUFS, btrfs, vfs и DeviceMapper.

Page 11: OpenStack и Docker: вместе и по отдельности

Драйвер Docker для Nova - установка

● Установить и запустить Docker на выч. Узле– yum -y install net-tools docker-io

– systemctl start docker

– git clone https://github.com/stackforge/nova-docker.git

– python setup.py install

● Добавить формат в Glance– crudini --set /etc/glance/glance-api.conf DEFAULT

container_formats ami,ari,aki,bare,ovf,ova,docker

● Указать драйвер в Nova-compute– crudini --set /etc/nova/nova.conf DEFAULT

compute_driver novadocker.virt.docker.DockerDriver

Page 12: OpenStack и Docker: вместе и по отдельности

Драйвер Docker для Nova - работа

[root@compute ~]# docker pull larsks/thttpd

[root@compute ~]# source keystonerc_admin

[root@compute ~]# docker save larsks/thttpd | glance image-create --is-public True --container-format docker --disk-format raw --name larsks/thttpd+------------------+--------------------------------------+

| container_format | docker |

| updated_at | 2015-05-09T19:42:25 |

+------------------+--------------------------------------+

[andrey@pc ~]$ glance image-list

+------+---------------------+-------------+------------------+

| ID | Name | Disk Format | Container Format |

+------+---------------------+-------------+------------------+

| bc.. | cirros-0.3.3-x86_64 | qcow2 | bare |

| 71.. | larsks/thttpd | raw | docker |

+------+---------------------+-------------+------------------+

Page 13: OpenStack и Docker: вместе и по отдельности

Драйвер Docker для Nova - работа

[andrey@pc ~]$ source keystonerc_demo [andrey@pc ~]$ nova boot --image larsks/thttpd --flavor m1.small test1

[root@compute ~]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

4680097f2cc0 larsks/thttpd:latest "/thttpd -D -l /dev/ 13 minutes ago Up 13 minutes nova-65de57d0-f033-4818-a522-2c3291dc516b

Page 14: OpenStack и Docker: вместе и по отдельности

Драйвер Docker для Nova - Horizon

Page 15: OpenStack и Docker: вместе и по отдельности

Magnum

● API-сервис для использования Docker, Kubernetes как ресурсов в OpenStack

● Использует Heat и ОС (Atomic, CoreOS, Snappy)● ОС включает в себя компоненты Docker и Kubernetes.

Когда кластер запускается в кластере Nova, Magnum им управляет

● https://github.com/openstack/magnum

Page 16: OpenStack и Docker: вместе и по отдельности

Kolla

● Сервсис для контейниризации служб OpenStack как отдельных микро-сервисов

– Репозиторий Kollaglue

● Задачи:– Внедрение;

– Упрощение обновлений;

– Переносимость;

● Например oVirt 3.6 – интеграция с OpenStack– Управление при помощи TripleO, Heat, Ansible и

т.д.

● https://github.com/stackforge/kolla

Page 17: OpenStack и Docker: вместе и по отдельности

Спасибо за внимание

СПАСИБО ЗА ВНИМАНИЕ!