Контейнеры в OpenStack: простое решение сложных проблем

34
Profit from the cloud TM [email protected] Dmitry Guryanov Контейнеры в Openstack – простое решение сложных проблем

description

В настоящее время в OpenStack есть хорошая поддержка гипервизорной виртуализации, но пока нет работающего решения для использования контейнеров. Я расскажу, почему так получилось, сравню гипервизорную и контейнерную технологии в контексте OpenStack и рассмотрю, насколько проще будет выполнять некоторые операции в OpenStack при использовании контейнеров, а также какие новые возможности появятся в OpenStack при использовании этого типа виртуализации.

Transcript of Контейнеры в OpenStack: простое решение сложных проблем

Page 1: Контейнеры в OpenStack: простое решение сложных проблем

Profit from the cloudTM

[email protected]

Dmitry Guryanov

Контейнеры в Openstack – простое

решение сложных проблем

Page 2: Контейнеры в OpenStack: простое решение сложных проблем

Profit from the cloud TM

Содержание

• Чем контейнеры отличаются от виртуальных машин.

• Что Parallels делает с OpenStack.

• Почему контейнеры проще поддерживать в OpenStack.

Page 3: Контейнеры в OpenStack: простое решение сложных проблем

3 Profit from the cloud TMTM

Виртуальные машины или контейнеры

• Одно ядро на всех

• Общаются с хостовой ОС с

помощью системных

вызовов

• Изоляция как и у

виртуальных машин

• В каждой ВМ свое ядро ОС

• Общаются с хостовой ОС

через виртуальное “железо”

Page 4: Контейнеры в OpenStack: простое решение сложных проблем

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: простое решение сложных проблем

5 Profit from the cloud TMTM

Особенности контейнеров

• Из хоста мы можем:

• Влиять на процессы внутри контейнера любым способом, доступным

системе: syscalls, procfs, cgroup files.

• Запускать любые процессы внутри контейнера с такой же легкостью и

надежностью, как и в хосте.

• Настраивать любые параметры системы, например, через sysctl, proc.

• Из контейнера мы можем:

• Запускать любые процессы с привилегиями суперпользователя.

• Менять параметры своих процессов.

• Настраивать некоторые, тщательно отобранные, параметры системы.

• Что мы не можем сделать из контейнера:

• Влиять на процессы из других контейнеров и хоста.

• Выходить за рамки разрешенного потребления ресурсов.

Page 6: Контейнеры в OpenStack: простое решение сложных проблем

6 Profit from the cloud TMTM

Преимущества контейнеров

• Главное преимущество – это высокая плотность. Контейнеров на

PCS можно запустить примерно в 3 раза больше, чем виртуальных

машин с такими же параметрами.

• Виртуальное железо отсутсвует – нет необходимости в

перезапусках, все операции можно делать на запущенном

контейнере.

• Есть надежный способ доступа внутрь гостевой системы.

Page 7: Контейнеры в OpenStack: простое решение сложных проблем

7 Profit from the cloud TMTM

Преимущества контейнеров

• Главное преимущество – это высокая плотность. Контейнеров на

PCS можно запустить примерно в 3 раза больше, чем виртуальных

машин с такими же параметрами.

• Виртуальное железо отсутсвует – нет необходимости в

перезапусках, все операции можно делать на запущенном

контейнере.

• Есть надежный способ доступа внутрь гостевой системы.

Недостатки:

• Нельзя запускать другие ОС, такие как Windows или FreeBSD.

• Нельзя делать вообще все что угодно.

Page 8: Контейнеры в OpenStack: простое решение сложных проблем

8 Profit from the cloud TMTM

Преимущества контейнеров

• Главное преимущество – это высокая плотность. Контейнеров на

PCS можно запустить примерно в 3 раза больше, чем виртуальных

машин с такими же параметрами.

• Виртуальное железо отсутсвует – нет необходимости в

перезапусках, все операции можно делать на запущенном

контейнере.

• Есть надежный способ доступа внутрь гостевой системы.

Недостатки:

• Нельзя запускать другие ОС, такие как Windows или FreeBSD.

• Нельзя делать вообще все что угодно.

Нужно ли это в облаках?

Page 9: Контейнеры в OpenStack: простое решение сложных проблем

9 Profit from the cloud TMTM

Контейнеры и Openstack

Если контейнеры – такая отличная технология, почему они все еще

не поддерживаются в OpenStack?

• Openstack используется в-основном, в частных облаках, где

большая плотность контейнеров не является преимуществом.

• Контейнеры, которые есть в основной ветке ядра не могут

использоваться для публичных IaaS сервисов.

Page 10: Контейнеры в OpenStack: простое решение сложных проблем

10 Profit from the cloud TMTM

Наша цель – дать возможность хостерам

использовать контейнеры через интерфейсы

Openstack.

Page 11: Контейнеры в OpenStack: простое решение сложных проблем

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: простое решение сложных проблем

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: простое решение сложных проблем

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: простое решение сложных проблем

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: простое решение сложных проблем

15 Profit from the cloud TMTM

Что уже сделано

openstack-nova-compute

libvirt xenapi hyperv vmware pcs OpenVZ

Page 16: Контейнеры в OpenStack: простое решение сложных проблем

16 Profit from the cloud TMTM

Что уже сделано

libvirt API

openstack-nova-compute

libvirt xenapi hyperv vmware

kvm xen lxc parallels

pcs OpenVZ

Page 17: Контейнеры в OpenStack: простое решение сложных проблем

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: простое решение сложных проблем

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: простое решение сложных проблем

19 Profit from the cloud TMTM

Решение задачи для виртуальных машин

• Подготовить образ так, чтобы он всегда получал IP по dhcp для всех

своих сетевых адаптеров.

• Использовать гостевые утилиты.

• Отредактировать файлы конфигурации сети перед запуском

instance.

Page 20: Контейнеры в OpenStack: простое решение сложных проблем

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: простое решение сложных проблем

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: простое решение сложных проблем

22 Profit from the cloud TMTM

Изменение размера instance в оффлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 23: Контейнеры в OpenStack: простое решение сложных проблем

23 Profit from the cloud TMTM

Изменение размера instance в оффлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 24: Контейнеры в OpenStack: простое решение сложных проблем

24 Profit from the cloud TMTM

Изменение размера instance в оффлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 25: Контейнеры в OpenStack: простое решение сложных проблем

25 Profit from the cloud TMTM

Изменение размера instance в оффлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 26: Контейнеры в OpenStack: простое решение сложных проблем

26 Profit from the cloud TMTM

Изменение размера instance в оффлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 27: Контейнеры в OpenStack: простое решение сложных проблем

27 Profit from the cloud TMTM

Изменение размера instance в онлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 28: Контейнеры в OpenStack: простое решение сложных проблем

28 Profit from the cloud TMTM

Изменение размера instance в онлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 29: Контейнеры в OpenStack: простое решение сложных проблем

29 Profit from the cloud TMTM

Изменение размера instance в онлайне

Compute node 2

Conpute node 1

hdd

ram

cpu

Page 30: Контейнеры в OpenStack: простое решение сложных проблем

30 Profit from the cloud TMTM

Online-resize виртуальных машин – это сложно

Онлайн-миграция виртуальных машин простая операция, но дальше

начинаются проблемы:

• Изменение размера жесткого диска на живой системе.

• Изменение количества оперативной памяти (уменьшение –

практически невозможно).

• Изменение количества процессоров сложная и опасная операция.

Page 31: Контейнеры в OpenStack: простое решение сложных проблем

31 Profit from the cloud TMTM

Почему это возможно с контейнерами?

• Онлайн миграция также реализована, к тому же происходит

быстрее.

• Изменение количества CPU происходит изменением параметра в

сигруппе cpu.

• Количество оперативной памяти легко меняется с помощью

сигруппы mem.

• На виртуальном диске контейнера находится одна ФС.

• Размер файловой системы

• Увеличивается запуском улилиты resize2fs в хосте.

• Уменьшается с использование техники ballooning.

Page 32: Контейнеры в OpenStack: простое решение сложных проблем

32 Profit from the cloud TMTM

Кроме того

• Set admin password делается тривиально.

• Inject file, networking, ssh keys тоже.

• В операциях attach/detach volume можно вместо имени устройства

указывать точку монтирования.

• Volume detach абсолютно безопасен.

Page 33: Контейнеры в OpenStack: простое решение сложных проблем

33 Profit from the cloud TMTM

Выводы

• Контейнеры отлично подходят для использования в Openstack.

• Но сейчас Openstack заточен под работу с виртуальными

машинами и контейнеры не поддерживаются.

• Так что мы работаем над этим.

Page 34: Контейнеры в OpenStack: простое решение сложных проблем

34 Profit from the cloud TMTM

Спасибо!

• http://www.parallels.com

• http://www.openvz.org

• http://www.criu.org