Рубрика:
Администрирование /
Виртуализация
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ ЯРЕМЧУК, автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС, grinder@samag.ru
Изучаем технологию контейнеров Windows Server 2016
Одной из примечательных новинок, появившихся в Windows Server 2016, является поддержка контейнеров. Познакомимся с ней поближе
Современные системы давно уже отошли от принципа одна ОС – один сервер. Технологии виртуализации позволяют более рационально использовать ресурсы сервера, позволяя запускать несколько ОС, разделяя их между собой и упрощая администрирование. Затем появились микросервисы позволяющие развертывать изолированные приложения как отдельный легко управляемый и масштабируемый компонент. Docker [1] изменил все. Процесс доставки приложения вместе сокружением стал на столько простым, что он не мог не заинтересовать конечного потребителя. Приложение внутри контейнера работает так как будто использует полноценную ОС. Но в отличие от виртуальных машин они не загружают собственные копии ОС, библиотеки, системные файлы и т.д. Контейнеры получают изолированное пространство имен в котором приложению доступны все необходимые ресурсы, но выйти за которые нельзя. Если нужно изменить установки, то сохраняются только различия с основной ОС. Поэтому контейнер в отличие от виртуальных машин очень быстро запускается и меньше нагружают систему. Контейнеры более эффективно используют ресурсы сервера.
Контейнеры в Windows
В Windows Server 2016 в дополнение к существующим технологиям виртуализации – Hyper-V и виртуальные приложения Server App-V, добавилась поддержка контейнеров Windows Server Containers реализованная через слой абстракции Contаiner Management stack реализующий все нужные функции. Анонсирована технология еще в Technical Preview 4, но с тех пор много что изменилось в сторону упрощения и инструкции написанные раньше можно даже не читать. Приэтом было предложено два вида «своих» контейнеров – контейнеры Windows и контейнеры Hyper-V. И наверное еще одной главной возможностью, является использование для управления контейнеров помимо командлетов PowerShell еще иинструментов Docker.
Контейнеры Windows напоминают по принципу FreeBSD Jail или Linux OpenVZ, используют с ОС одно ядро, которое вместе с остальными ресурсами (ОЗУ, сеть) разделяют между собой. Файлы ОС и службы проецируются в пространство имен каждого контейнера. Такой тип контейнера эффективно использует ресурсы, уменьшая накладные расходы, а значит позволяет более плотно размещать приложения. Так как базовые образы контейнера «имеют» одно ядро c узлом, ихверсии должны совпадать, иначе работа не гарантируется.
В контейнерах Hyper-V используется дополнительный уровень изоляции и каждому контейнеру выделяется свое ядро и память. Изоляцию в отличие от предыдущего типа осуществляет не ядро ОС, а гипервизор Hyper-V (требуется роль Hyper-V). В результате достигается меньшие накладные расходы по сравнению с виртуальными машинами, но больший уровень изоляции по сравнению с контейнерами Windows. В этом случае для запуска контейнера иметь такое же ядро вОС. Также эти контейнеры можно разворачивать и в Windows 10 Pro/Корпоративная [2]. Особо стоит отметить, что тип контейнер выбирается не во время создания, а во время развертывания. То есть любой контейнер может быть запущен икак Windows и как Hyper-V варианте.
В качестве ОС в контейнере используются обрезанные Server Core или Nano Server. Первый, появился еще в Windows Sever 2008 и обеспечивает большую совместимость с имеющимися приложениями. Второй еще более урезан посравнениею с Server Core и предназначен для работы без монитора, позволяя запускать сервер в минимально возможной конфигурации для использования с Hyper-V, файловым сервером (SOFS) и «облачными» службами, требуя на 93% меньше места. Содержит только самые необходимые компоненты (.Net с CoreCLR, Hyper-V, Clustering и т.д.).
Для хранения используется формат образа жесткого диска VHDX. Контейнеры как и в случае с Docker сохраняются в образы в репозитории. При чем каждый сохраняется не полный набор данных, а только отличия создаваемого образа отбазового. А в момент запуска все нужные данные проецируются в память. Для управления сетевым трафиком между контейнером и физической сетью используется Virtual Switch.
Статью целиком читайте в журнале «Системный администратор», №12 за 2016 г. на страницах 20-22.
PDF-версию данного номера можно приобрести в нашем магазине.
- Проект Docker – http://docker.com.
- Get started with Docker for Windows – https://docs.docker.com/docker-for-windows.
- Документация по контейнерам Windows – https://msdn.microsoft.com/virtualization/windowscontainers.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|