Начало работы с контейнерами (часть 3)

Опубликовано: 18 Апреля, 2023

  • Начало работы с контейнерами (часть 2)
  • Начало работы с контейнерами (часть 6)

Введение

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

Переносимость контейнеров

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

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

Однако имейте в виду, что переносимость образа контейнера имеет свои ограничения. Хотя я никогда не пробовал это сам, я прочитал несколько сообщений в блогах, в которых говорилось, что контейнеры Windows нельзя запускать на хостах Linux, а контейнеры Linux нельзя запускать на хостах Windows.

Анатомия контейнера

Контейнеры Windows Server используют два разных типа образов. Существуют образы базовой ОС и образы контейнеров. Образы базовой ОС — это, по сути, просто операционная система. Преимущество этих изображений в том, что вам не нужно создавать их с нуля. Вы можете скачать базовый образ ОС с веб-сайта Microsoft. Другой тип образа — это образ-контейнер. Образ контейнера — это ваш собственный образ. Образ контейнера основан на образе базовой ОС, но не содержит самой полноценной ОС.

Установка контейнеров Windows

Как отмечалось ранее, контейнеры можно использовать либо на уровне Windows Server, либо на уровне Hyper-V. В этой статье я буду развертывать контейнеры Windows Server. Таким образом, первое, что необходимо сделать, это установить функцию контейнеров, а затем перезагрузить сервер. Самый простой способ сделать это — открыть окно PowerShell с повышенными привилегиями, а затем ввести следующие команды:

Контейнеры Install-WindowsFeature

Выключение /R

Функцию контейнеров, конечно, можно установить с помощью мастера добавления ролей и компонентов диспетчера серверов, но Microsoft, похоже, действительно предполагает использование Server Core или даже Nano Server в качестве хоста контейнера. Вот почему я даю инструкции на основе PowerShell.

После перезагрузки системы вы можете убедиться, что она настроена для работы в качестве узла контейнера, введя командлет Get-ContainerHost в PowerShell. Результат должен напоминать то, что вы видите на рисунке A.

Изображение 14710
Рисунок A.
Вы можете использовать командлет Get-ContainerHost, чтобы убедиться, что компонент Containers установлен.

Следующее, что вам нужно будет сделать, это создать виртуальный коммутатор. Концепция виртуальных коммутаторов уже должна быть знакома администраторам, имеющим опыт управления Hyper-V. В среде Hyper-V виртуальный коммутатор — это то, что обеспечивает сетевое подключение к виртуальной машине. Как правило, виртуальная машина содержит одну или несколько виртуальных сетевых карт, и эти виртуальные сетевые карты подключаются к виртуальному коммутатору. Точно так же виртуальные коммутаторы обеспечивают подключение к контейнерам.

Наиболее типичным типом виртуального коммутатора, используемого контейнерами, является NAT. Думайте о коммутаторе NAT как о виртуальном представлении физического устройства NAT. При создании коммутатора NAT вам потребуется определить подсеть для использования в среде NAT. Судя по нескольким веб-сайтам, многие люди используют подсеть 172.16.0.0/12. Поскольку это, кажется, популярный выбор, я тоже буду использовать его.

Чтобы создать виртуальный коммутатор NAT и настроить среду NAT, вам нужно будет ввести две команды. Для подсети 172.16.0.0/12 эти команды следующие:

New-VMSwitch — Имя «Мой виртуальный коммутатор» — SwitchType NAT — NATSubnetAddress «172.16.0.0/12»

New-NetNat –Name MyNAT –InternalIPInterfaceAddressPrefix «172.16.0.0/12»

Вы можете увидеть, как это выглядит на рисунке B.

Изображение 14711
Рисунок B: Я определил новый виртуальный коммутатор.

Следующее, что нам нужно сделать, это установить базовый образ ОС. Помните, что мы не можем создавать какие-либо пользовательские контейнеры, пока у нас не будет установлен базовый образ ОС. Microsoft предоставляет базовые образы ОС, основанные на Windows Server Core и Nano Server. Однако дело в том, что эти базовые образы ОС не существуют по умолчанию. Мы должны установить их.

В установке базовых образов ОС контейнера нет ничего сложного, но процесс может немного отличаться от того, что вы ожидаете. Командлет, используемый для загрузки и установки базового образа ОС, называется Install-ContainerImage. Использовать эту команду достаточно просто, но мы пока не можем ее использовать. Прежде чем мы сможем установить образ контейнера, мы должны выяснить, какие образы контейнеров доступны, и прежде чем мы сможем это сделать, мы должны установить поставщика пакетов с именем ContainerProvider. Именно этот поставщик пакетов позволяет нам получить доступ к образам контейнеров.

Чтобы установить поставщика пакетов, введите следующую команду:

Install-PackageProvider ContainerProvider — Force

После установки поставщика контейнеров вы можете определить, какие образы контейнеров доступны, введя следующую команду:

Find-ContainerImage

Теперь вам просто нужно загрузить и установить выбранный образ или образы. Как упоминалось ранее, это можно сделать с помощью команды Install-ContainerImage. Вам нужно будет указать имя образа контейнера и номер версии. Эту информацию предоставляет команда Find-ContainerImage. Например, если вы посмотрите на рисунок C, вы увидите, что там есть образ с именем NanoServer. Его версия 10.0.10586.0. Если бы я хотел установить этот образ контейнера, я бы использовал эту команду:

Install-ContainerImage — имя NanoServer — версия 10.0.10586.0

Изображение 14712
Рисунок C: Я установил контейнер Nano Server.

Если вам интересно, у вас может быть несколько образов базовой ОС. Например, если вы посмотрите на рисунок D, то увидите, что я установил Nano Server и Windows Server Core в качестве базовых образов ОС. Контейнеру нужен только один базовый образ ОС, но вы можете установить несколько образов.

Изображение 14713
Рисунок D: Я установил Nano Server и Windows Server Core в качестве базовых образов ОС.

Вывод

Как видите, довольно просто настроить Windows Server 2016 для работы в качестве узла контейнера, а также для загрузки и установки образов базовой ОС. В следующей статье этой серии я начну показывать вам, что мы можем делать с этими изображениями. А пока, если вы хотите пропустить этот шаг, Microsoft предоставляет отличную документацию. Это та же документация, с которой я работаю при разработке этой серии статей.

  • Начало работы с контейнерами (часть 6)