Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ресурс верхнего уровня в службе "Экземпляры контейнеров Azure" — это группа контейнеров. В этой статье представлены сведения о группах контейнеров и описаны сценарии, которые можно реализовать с их помощью.
Что такое группа контейнеров?
Группа контейнеров — это набор контейнеров, которые можно планировать на одном хост-компьютере. Контейнеры в группе контейнеров совместно используют жизненный цикл, ресурсы, локальную сеть и тома хранилища. Он концептуально аналогичен pod в Kubernetes.
На схеме ниже показан пример группы контейнеров, включающей несколько контейнеров:
Группа контейнеров в этом примере:
- Планируется на одном хост-компьютере.
- Назначается метка DNS-имени.
- Обеспечивает один общедоступный IP-адрес с одним открытым портом.
- Состоит из двух контейнеров. Один контейнер прослушивает порт 80, а другой — порт 5000.
- Включает два файловых хранилища Azure в качестве подключенных томов, при этом каждый контейнер локально подключает одно из хранилищ.
Примечание.
Многоконтейнерные группы в настоящее время поддерживают только контейнеры Linux. Для контейнеров Windows служба Azure Container Instances поддерживает только развертывание одного экземпляра контейнера. Хотя мы работаем над переносом всех функций в контейнеры Windows, вы можете найти текущие различия платформы в обзоре службы.
Развертывание
Ниже приведены два распространенных способа развертывания группы с несколькими контейнерами: использование шаблона Resource Manager или YAML-файла. При развертывании экземпляров контейнеров рекомендуется использовать шаблон Resource Manager для развертывания других ресурсов службы Azure (например, общий ресурс Azure Files). Если вы развертываете только экземпляры контейнеров, рекомендуется использовать YAML-файл, поскольку его формат более краткий. Дополнительные сведения о свойствах, которые можно задать, см. в справочнике по шаблону Resource Manager или справочной документации по YAML .
Чтобы сохранить конфигурацию группы контейнеров, можно экспортировать конфигурацию в YAML-файл с помощью команды Azure CLI az container export. Экспорт позволяет хранить конфигурации групп контейнеров в элементе управления версиями для "конфигурации в виде кода". Кроме того, при разработке новой конфигурации в YAML используйте экспортируемый файл в качестве отправной точки.
Распределение ресурсов
Экземпляры контейнеров Azure выделяют такие ресурсы, как процессоры, память и при необходимости графические процессоры (в режиме предварительного просмотра), добавляя запросы ресурсов экземпляров в группе с несколькими контейнерами. Если вы создаете группу контейнеров с двумя экземплярами контейнеров, и каждый запрашивает один ЦП, тогда группе контейнеров выделяются 2 ЦП.
Использование ресурсов экземплярами контейнеров
Каждому экземпляру контейнера в группе выделяются ресурсы, указанные в его запросе ресурсов. Однако максимальные ресурсы, используемые экземпляром контейнера в группе, могут отличаться, если настроить его необязательное свойство ограничения ресурсов . Ограничение ресурсов экземпляра контейнера должно быть больше или равно свойству обязательного запроса ресурса .
Если не указать ограничение ресурсов, максимальное использование ресурса экземпляра контейнера совпадает с его запросом на ресурс.
Если указать ограничение для экземпляра контейнера, максимальное использование экземпляра может быть больше, чем запрос, до заданного предела. Соответственно, использование ресурсов другими экземплярами контейнеров в группе может снизиться. Максимальное ограничение ресурсов, заданное для экземпляра контейнера, — это общее количество ресурсов, выделенных группе.
Например, в группе с двумя экземплярами контейнеров каждый запрашивает один ЦП, один из контейнеров может запускать рабочую нагрузку, требующую больше ЦП, чем другая.
В этом сценарии можно задать ограничение ресурсов до 2 ЦП для экземпляра контейнера. Эта конфигурация позволяет экземпляру контейнера использовать до 2 ЦП при наличии.
Примечание.
Небольшое количество ресурсов группы контейнеров используется базовой инфраструктурой службы. Ваши контейнеры смогут получить доступ к большинству ресурсов, выделенных для группы, но не ко всем. По этой причине планируйте небольшой буфер ресурсов при запросе ресурсов для контейнеров в группе.
Минимальное и максимальное выделение
Выделите не менее 1 ЦП и 1 ГБ памяти группе контейнеров. Отдельным экземплярам контейнеров в группе можно выделить меньше одного центрального процессора и 1 ГБ памяти.
Для максимальных ресурсов в группе контейнеров смотрите доступность ресурсов для экземпляров контейнеров Azure в регионе размещения.
Сети
Группы контейнеров могут совместно использовать внешний IP-адрес, один или несколько портов на этом IP-адресе и метку DNS с полным доменным именем (FQDN). Чтобы внешние клиенты могли получить доступ к контейнеру в группе, необходимо предоставить порт по IP-адресу и из контейнера. IP-адрес группы контейнеров и полное доменное имя освобождаются при удалении группы контейнеров.
В группе контейнеров экземпляры контейнеров могут связаться друг с другом через localhost на любом порту, даже если эти порты не открыты во внешней сети через IP-адрес группы или из контейнера.
При необходимости развертывайте группы контейнеров в виртуальной сети Azure , чтобы контейнеры могли безопасно взаимодействовать с другими ресурсами в виртуальной сети.
Хранение
Вы можете указать внешние тома для подключения в пределах группы контейнеров. К числу поддерживаемых томов относятся:
Вы можете сопоставить эти тома с конкретными путями в пределах отдельных контейнеров в группе.
Распространенные сценарии
Группы с несколькими контейнерами полезны в случаях, когда требуется разделить одну функциональную задачу на несколько образов контейнеров. Эти изображения могут иметь отдельные требования к ресурсам, и разные команды могут их предоставлять.
Пример использования может включать следующее:
- Контейнер, обслуживающий веб-приложение, и контейнер, загружающий обновлённое содержимое из системы управления версиями.
- Контейнер приложения и контейнер логирования. Контейнер для ведения логов собирает журналы и метрики, выводимые основным приложением, и записывает их в долгосрочное хранилище.
- Контейнер приложения и контейнер мониторинга. Контейнер мониторинга периодически выполняет запрос к приложению, чтобы убедиться, что оно правильно работает и отвечает, и выдает предупреждение, если это не так.
- Контейнер фронтенда и контейнер бэкенда. Фронтенд может обслуживать веб-приложение, а бэкенд — выполнять службу для извлечения данных.
Дальнейшие действия
Узнайте, как развертывать группу контейнеров с несколькими контейнерами с использованием шаблона Azure Resource Manager: