Контейнеры в openstack: простое решение сложных проблем
DESCRIPTION
В настоящее время в OpenStack есть хорошая поддержка гипервизорной виртуализации, но пока нет работающего решения для использования контейнеров. Я расскажу, почему так получилось, сравню гипервизорную и контейнерную технологии в контексте OpenStack и рассмотрю, насколько проще будет выполнять некоторые операции в OpenStack при использовании контейнеров, а также какие новые возможности появятся в OpenStack при использовании этого типа виртуализации.TRANSCRIPT
![Page 1: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/1.jpg)
Profit from the cloudTM
Dmitry Guryanov
Контейнеры в Openstack – простое
решение сложных проблем
![Page 2: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/2.jpg)
Profit from the cloud TM
Содержание
• Чем контейнеры отличаются от виртуальных машин.
• Что Parallels делает с OpenStack.
• Почему контейнеры проще поддерживать в OpenStack.
![Page 3: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/3.jpg)
3 Profit from the cloud TMTM
Виртуальные машины или контейнеры
• Одно ядро на всех
• Общаются с хостовой ОС с
помощью системных
вызовов
• Изоляция как и у
виртуальных машин
• В каждой ВМ свое ядро ОС
• Общаются с хостовой ОС
через виртуальное “железо”
![Page 4: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/4.jpg)
4 Profit from the cloud TMTM
Контейнер в дереве процессов
3231 /usr/sbin/httpd
3556 \_ /usr/sbin/httpd
3557 \_ /usr/sbin/httpd
3849 iscsid
4025 rpcbind
4722 init
4879 \_ /sbin/udevd –d
5164 \_ /sbin/rsyslogd
5189 \_ /usr/sbin/sshd
5196 \_ xinetd
5203 \_ /usr/sbin/saslauthd
5204 | \_ /usr/sbin/saslauthd
5240 \_ /usr/sbin/httpd
5251 \_ /usr/sbin/httpd
5260 bash –
5265 \_ /usr/bin/vim
• Namespaces
• Cgroups
• Filesystem
Container 101
![Page 5: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/5.jpg)
5 Profit from the cloud TMTM
Особенности контейнеров
• Из хоста мы можем:
• Влиять на процессы внутри контейнера любым способом, доступным
системе: syscalls, procfs, cgroup files.
• Запускать любые процессы внутри контейнера с такой же легкостью и
надежностью, как и в хосте.
• Настраивать любые параметры системы, например, через sysctl, proc.
• Из контейнера мы можем:
• Запускать любые процессы с привилегиями суперпользователя.
• Менять параметры своих процессов.
• Настраивать некоторые, тщательно отобранные, параметры системы.
• Что мы не можем сделать из контейнера:
• Влиять на процессы из других контейнеров и хоста.
• Выходить за рамки разрешенного потребления ресурсов.
![Page 6: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/6.jpg)
6 Profit from the cloud TMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
![Page 7: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/7.jpg)
7 Profit from the cloud TMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
Недостатки:
• Нельзя запускать другие ОС, такие как Windows или FreeBSD.
• Нельзя делать вообще все что угодно.
![Page 8: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/8.jpg)
8 Profit from the cloud TMTM
Преимущества контейнеров
• Главное преимущество – это высокая плотность. Контейнеров на
PCS можно запустить примерно в 3 раза больше, чем виртуальных
машин с такими же параметрами.
• Виртуальное железо отсутсвует – нет необходимости в
перезапусках, все операции можно делать на запущенном
контейнере.
• Есть надежный способ доступа внутрь гостевой системы.
Недостатки:
• Нельзя запускать другие ОС, такие как Windows или FreeBSD.
• Нельзя делать вообще все что угодно.
Нужно ли это в облаках?
![Page 9: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/9.jpg)
9 Profit from the cloud TMTM
Контейнеры и Openstack
Если контейнеры – такая отличная технология, почему они все еще
не поддерживаются в OpenStack?
• Openstack используется в-основном, в частных облаках, где
большая плотность контейнеров не является преимуществом.
• Контейнеры, которые есть в основной ветке ядра не могут
использоваться для публичных IaaS сервисов.
![Page 10: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/10.jpg)
10 Profit from the cloud TMTM
Наша цель – дать возможность хостерам
использовать контейнеры через интерфейсы
Openstack.
![Page 11: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/11.jpg)
11 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Другие сервисы, работающие через Nova API
Op
en
Vsw
itch
Lin
uxB
ridg
e
![Page 12: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/12.jpg)
12 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Другие сервисы, работающие через Nova API
Op
en
Vsw
itch
Lin
uxB
ridg
e
PC
S
![Page 13: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/13.jpg)
13 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Horizon
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Другие сервисы, работающие через Nova API
Op
en
Vsw
itch
Lin
uxB
ridg
e
PC
S
PS
tora
ge
PS
tora
ge
![Page 14: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/14.jpg)
14 Profit from the cloud TMTM
Наши планы по интеграции с Openstack.
Compute
Nova
Network
Neutron
Storage
Cinder
Image
Glance
API
Xe
n
Vm
wa
re
Hyp
erV
KV
M
Sw
ift
Ce
ph
Glu
ste
r
SA
N
Op
en
Vsw
itch
Lin
uxB
ridg
e
Parallels Panels
PC
S
APS Packaging
PS
tora
ge
PS
tora
ge
Billing
Parallels Automation
![Page 15: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/15.jpg)
15 Profit from the cloud TMTM
Что уже сделано
openstack-nova-compute
libvirt xenapi hyperv vmware pcs OpenVZ
![Page 16: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/16.jpg)
16 Profit from the cloud TMTM
Что уже сделано
libvirt API
openstack-nova-compute
libvirt xenapi hyperv vmware
kvm xen lxc parallels
pcs OpenVZ
![Page 17: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/17.jpg)
17 Profit from the cloud TMTM
pcs-nova-driver
• Boot from image (все, что поддерживает qemu-img + наш формат).
• Boot from volume (VM only).
• Power off/power on/suspend/resume.
• Pause/unpause (VM only).
• OVS Networking.
• Neutron security groups.
• Instance snapshots.
• VNC console.
• Volume attach/detach (VM only).
• ISCSI volumes.
• Inject guest info (ssh keys, admin password, flat networking info, то же самое, что и в kvm).
• Set admin password (CT only).
![Page 18: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/18.jpg)
18 Profit from the cloud TMTM
Настройка сети с точки зрения nova-compute
Compute
Driver
spawn
OVS/br-int
dnsmasq
Public
network
Instance001
Instance002
Instance003
Instance003
VIF1:type=OVSbridge=br-intname=tapX123mac=01:02:04:AA:BB:CCip=192.168.144.12/24gw=192.168.144.1
![Page 19: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/19.jpg)
19 Profit from the cloud TMTM
Решение задачи для виртуальных машин
• Подготовить образ так, чтобы он всегда получал IP по dhcp для всех
своих сетевых адаптеров.
• Использовать гостевые утилиты.
• Отредактировать файлы конфигурации сети перед запуском
instance.
![Page 20: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/20.jpg)
20 Profit from the cloud TMTM
Настройка IP внутри контейнеров
• Во всех дистрибутивах линукса сеть настраивается по-разному, но
их конечное число.
• В PCS поддерживаются все популярные дистрибутивы.
~ prlctl set my-instance --device-add net \
--network Bridged \
--mac 0A:02:04:AA:BB:CC \
--ipadd 192.168.144.12/24 \
--gw 192.168.144.1
![Page 21: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/21.jpg)
21 Profit from the cloud TMTM
Изменение размера instance
• nova boot my-instance --image fedora-20 \
--flavor m1.small
• nova resize my-instance m1.medium
• nova resize-confirm my-instance
Что меняется:
• Размер root, swap и ephemeral диска.
• Количество процессоров.
• Объем оперативной памяти.
![Page 22: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/22.jpg)
22 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 23: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/23.jpg)
23 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 24: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/24.jpg)
24 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 25: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/25.jpg)
25 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 26: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/26.jpg)
26 Profit from the cloud TMTM
Изменение размера instance в оффлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 27: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/27.jpg)
27 Profit from the cloud TMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 28: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/28.jpg)
28 Profit from the cloud TMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 29: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/29.jpg)
29 Profit from the cloud TMTM
Изменение размера instance в онлайне
Compute node 2
Conpute node 1
hdd
ram
cpu
![Page 30: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/30.jpg)
30 Profit from the cloud TMTM
Online-resize виртуальных машин – это сложно
Онлайн-миграция виртуальных машин простая операция, но дальше
начинаются проблемы:
• Изменение размера жесткого диска на живой системе.
• Изменение количества оперативной памяти (уменьшение –
практически невозможно).
• Изменение количества процессоров сложная и опасная операция.
![Page 31: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/31.jpg)
31 Profit from the cloud TMTM
Почему это возможно с контейнерами?
• Онлайн миграция также реализована, к тому же происходит
быстрее.
• Изменение количества CPU происходит изменением параметра в
сигруппе cpu.
• Количество оперативной памяти легко меняется с помощью
сигруппы mem.
• На виртуальном диске контейнера находится одна ФС.
• Размер файловой системы
• Увеличивается запуском улилиты resize2fs в хосте.
• Уменьшается с использование техники ballooning.
![Page 32: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/32.jpg)
32 Profit from the cloud TMTM
Кроме того
• Set admin password делается тривиально.
• Inject file, networking, ssh keys тоже.
• В операциях attach/detach volume можно вместо имени устройства
указывать точку монтирования.
• Volume detach абсолютно безопасен.
![Page 33: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/33.jpg)
33 Profit from the cloud TMTM
Выводы
• Контейнеры отлично подходят для использования в Openstack.
• Но сейчас Openstack заточен под работу с виртуальными
машинами и контейнеры не поддерживаются.
• Так что мы работаем над этим.
![Page 34: Контейнеры в OpenStack: простое решение сложных проблем](https://reader030.vdocuments.site/reader030/viewer/2022013108/55627a7cd8b42ae73c8b4d96/html5/thumbnails/34.jpg)
34 Profit from the cloud TMTM
Спасибо!
• http://www.parallels.com
• http://www.openvz.org
• http://www.criu.org