ИТ-пятница с GigaCloud: контейнеры — очевидная тенденция

8 январь, 2020 - 16:21Леонид Бараш

VMWorld 2019, контейнеры от NetApp и Kubernetes (K8s) были темами очередной сессии технических семинаров компании GigaCloud.

Традиционно, участников приветствовал руководитель отдела R&D компании Кирилл Науменко. Он отметил, что все три предстоящих доклада связаны в той или иной степени с контейнерами. Сегодня их использование просматривается как тенденция, и в последующие годы она будет проявляться все заметнее. И тем, кто использует методы DevOps пора обратиться к Google и разобраться, зачем они вообще, как это все работает, и почему мы идем к миру serverless-технологий.

ИТ-пятница с GigaCloud: контейнеры — очевидная тенденция

Кирилл Науменко: «Сегодня использование контейнеров просматривается как тенденция, и в последующие годы она будет проявляться все заметнее»

Чтобы следить за тенденциями в ИТ, сотрудники GigaCloud постоянно участвуют в конференции VMWorld. И если раньше на подобных конференциях в голову приходила мысль о том, насколько мы отстаем, то теперь это ощущается уже не так сильно — современные технологии все быстрее осваиваются в Украине. Об опыте посещения VMworld 2019 рассказал архитектор VMware Андрей Павчинский из GigaCloud.

VMware следует той же стратегии, которую она представила год назад: запуск приложений желательно делать в любом облаке, на любой платформе и иметь единую систему безопасности. То есть, приложение должно работать где угодно: у заказчика, у ближайшего провайдера или в другом месте.

ИТ-пятница с GigaCloud: контейнеры — очевидная тенденция

Андрей Павчинский: «Суть технологии RDMA в том, что ВМ может получить объем памяти больший, чем имеется на хосте»

В этом году VMware приобрела много сетевых компаний, специализирующихся на межоблачных соединениях и безопасности. Среди них есть компании, занимающиеся C&C (Cloud & Containers). Именно эти технологии и являются основной темой сегодняшнего семинара. Контейнеры и многооблачность — это то, к чему сейчас идут все провайдеры.

Сейчас дорабатывается версия NSX-T 2.5, которая обеспечивает гибкую программно-определяемую инфраструктуру для построения нативной облачной среды для приложений. Новая версия может работать отдельно от гипервизора и отдельно от vCenter, может работать на OpenStack и KVM, поддерживает Azure и VMware Cloud on AWS. Изменена технология инкапсуляции, Bitnami заменена на GNet, реализована поддержка Kubernetes. NSX-T 2.5 позволит управлять всеми контейнерами, находящимися у разных провайдеров и применять единые политики.

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

Версия DRS 1.0, которая и делает виртуализацию интересной, существует с 2006 г. Она позволяет ВМ мигрировать между хостами, для того чтобы они распределялись равномерно и не мешали друг другу. VMware собирается выпустить v.2 этого продукта, улучшенную и измененную. Если v.1.0 была рассчитана на равномерное распределение кластера, то есть, учитывала загрузку хостов, то DRS 2.0 «смотрит» за ВМ. Кроме этого, в отличие от предыдущей версии, которая запускалась каждые 5 мин, она запускается каждую минуту, следит за загрузкой ВМ и распределяет их по кластеру. Есть также опции, позволяющие вручную отредактировать ВМ. В vCenter можно будет определить состояние «здоровья» каждой ВМ. Такой подход приводит к более равномерной нагрузке всего кластера.

Интересный концепт технологии кластера памяти анонсируют VMware и приобретенная ею компания Bitfusion. Дело в том, что за 20 лет темп уменьшения латентность сети превышает таковой для памяти. Использование карт RDMA позволяет выполнять быстрый прямой доступ к памяти без обращения к процессору. Суть технологии в том, что ВМ может получить объем памяти больший, чем имеется на хосте. При этом тесты показывают, что даже при использовании 70% памяти вне хоста производительность снижается ненамного.

Инженер по направлению NetApp из компании МУК Алексей Захаренко рассказал о том, как максимально эффективно использовать контейнеры с NetApp.

ИТ-пятница с GigaCloud: контейнеры — очевидная тенденция

Алексей Захаренко: «Большинство из используемых сегодня сервисов работают в контейнерах»

По его мнению, о контейнерах много говорят, но мало кто знает, что это такое и как их использовать. На самом деле, большинство из используемых сегодня сервисов работают в контейнерах. Популярная игра Pokemon Go одной из первых использовала контейнер. Контейнеризацию используют также такие популярные приложения, как Gmail, Google Map и Google Search. Запуск программы в контейнере позволяет отделить гостевые операционные системы от самих приложений.

Контейнеры запускаются в среде, наиболее популярная из которых называется Docker. Пользователи могут установить ее у себя, загрузив с сайта Docker.com. Он может работать под управлением любой ОС.

Стандартная процедура контейнеризации выглядит следующим образом. Нужно подключиться к «демону» с помощью соответствующего клиента, и тот разворачивает у пользователя контейнеры. Он может загружать их из Интернета и запускать. Правда, не все приложения, которые требуют высокой производительности, можно помещать в контейнер.

При использовании контейнеров встает проблема управления ими. Хотя систем управления контейнеризацией существует большое количество, но все говорят про К8s (Kubernetes). Она позволяет добавлять узлы и быстро разворачивать в них контейнеры.

Kubernetes является системой, которая может управлять практически неограниченным количеством контейнеров, а также большим количеством приложений. В ней поддерживаются различные SLA в зависимости от внесенных политик. Она также позволяет более точно и удобно настраивать политики безопасности с помощью Name Space. Для максимального упрощения использования контейнеров есть определенный сервис, который называется Kubernetes-as-a-Service. Он позволяет с помощью облачных провайдеров развернуть систему контейнеризации буквально в два нажатия клавиши мыши. Еще одна функция — это управление из единой точки контейнерами, которые могут быть развернуты в совершенно разных гипермасштабируемых архитектурах одновременно. Она может брать группу контейнеров (Pod), и одним нажатием клавиши мыши можно инсталлировать новый. Также поддерживается NetApp Trident, то есть возможность использовать облачные системы NetApp, и в них разворачивать контейнеры. Кроме этого, Trident совместно с Kubernetes позволяет очень просто перемещать данные из ЦОД компании в гипермасштабируемую архитектуру. Более подробную информацию о возможностях К8s предоставил архитектор OpenStack в GigaCloud Алексей Кириченко.

ИТ-пятница с GigaCloud: контейнеры — очевидная тенденция

Алексей Кириченко: «Kubernetes управляет и отвечает за жизненные циклы множества контейнеров Docker»

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

С помощью Kubernetes можно управлять проектами. В качестве примера была рассмотрена следующая ситуация. Предположим, что есть какой-то проект, скажем, веб-сайт. При его разработке неизвестно, сколько пользователей будет подключаться к сайту, как их количество будет распределяться во времени. За один час их может быть тысяча, а в следующий — несколько человек. Статическое планирование на максимум посещений ведет к перерасходу финансов. Kubernetes как раз и решает проблему эластичного использования ресурсов. Он также отвечает за автомасштабирование (autoscaling). Если нагрузка на сайт не постоянная, то эта функция в зависимости от нее расширяет или сжимает ресурсы. При этом расширение может ограничиваться лимитом, который определяет заказчик.

В GigaCloud стартовал проект Kubernetes—as-a-Service. Kubernetes можно заказать у любого провайдера или инсталлировать его самостоятельно. Правда, в последнем случае это потребует определенного времени и знаний, что не всегда удобно. В этом случае клиент может заказать сервис и пользоваться им. Кроме заказа ВМ, необходимо получить постоянное хранилище (Persistent Volumes, PV), указав, какой объем необходим. При необходимости, его можно будет изменить в ту или иную сторону. Последним параметром является количество IP-адресов, которое планируется использовать. Для доступа к хранилищу необходимо привязаться к одному или нескольким IP-адресам.

Если говорить об архитектуре Kubernetes, то она включает один или несколько мастер-серверов. На них не запускаются продуктивные программы, они ответственны только за управление. У них есть модуль API, отвечающий за консольные команды, контроллер-менеджер, который отвечает за кластер, планировщик (scheduler), управляющий жизненными циклами Pod. Вторым компонентом являются узлы, по сути ВМ, на которых запускается продуктивное ПО. Их количество практически не ограничено.

В заключение докладчик привел пример использования Kubernetes.