Реализация групп контейнеров
Ресурс верхнего уровня в службе "Экземпляры контейнеров Azure" — это группа контейнеров. Группа контейнеров — это коллекция контейнеров, которые будут запланированы на том же хост-компьютере. Контейнеры используют жизненный цикл, ресурсы, локальные сети и тома хранилища.
Сведения о группах контейнеров
Давайте рассмотрим некоторые сведения о группах контейнеров для Экземпляры контейнеров Azure.
Группа контейнеров похожа на pod в Kubernetes. Обычно модуль pod имеет сопоставление 1:1 с контейнером, но модуль pod может содержать несколько контейнеров. Контейнеры в модуле pod с несколькими контейнерами могут совместно использовать связанные ресурсы.
Экземпляры контейнеров Azure выделяет ресурсы группе с несколькими контейнерами, добавляя запросы ресурсов всех контейнеров в группе. Ресурсы могут включать такие элементы, как ЦП, память и GPU.
Рассмотрим группу контейнеров с двумя контейнерами, для которых требуются ресурсы ЦП. Каждый контейнер запрашивает один ЦП. Экземпляры контейнеров Azure выделяет два ЦП для группы контейнеров.
Существует два распространенных способа развертывания многоконтейнерной группы: шаблонов Azure Resource Manager (ARM) и файлов YAML.
Шаблон ARM. Шаблон ARM рекомендуется развертывать другие ресурсы службы Azure при развертывании экземпляров контейнеров, таких как Файлы Azure файловая папка.
YAML-файл. Из-за краткого характера формата YAML рекомендуется использовать YAML-файл, если развертывание включает только экземпляры контейнеров.
Группы контейнеров могут совместно использовать внешний IP-адрес, один или несколько портов в IP-адресе и dns-метку с полным доменным именем.
Внешний доступ к клиенту. Необходимо предоставить порт по IP-адресу и из контейнера, чтобы внешние клиенты могли получить доступ к контейнеру в группе.
Сопоставление портов. Сопоставление портов не поддерживается, так как контейнеры в группе используют пространство имен портов.
Удаленные группы. При удалении группы контейнеров его IP-адрес и полное доменное имя освобождаются.
Пример конфигурации
Рассмотрим следующий пример группы с несколькими контейнерами с двумя контейнерами.
Группа с несколькими контейнерами имеет следующие характеристики и конфигурацию:
- Группа контейнеров запланирована на одном компьютере узла и назначается метка DNS-имени.
- Группа контейнеров предоставляет один общедоступный IP-адрес с одним предоставленным портом.
- Один контейнер в группе прослушивает порт 80. Другой контейнер прослушивает порт 1433.
- Группа включает два Файлы Azure общих папок в качестве подключений томов. Каждый контейнер в группе подключает один из общих папок локально.
Что следует учитывать при использовании групп контейнеров
Группы с несколькими контейнерами полезны, если требуется разделить одну функциональную задачу на несколько образов контейнеров. Различные команды могут доставлять образы, а образы могут иметь отдельные требования к ресурсам.
Рассмотрим следующие сценарии для работы с несколькими группами контейнеров. Подумайте о том, какие варианты могут поддерживать внутренние приложения для онлайн-розничной торговли.
Рассмотрите возможность обновления веб-приложения. Поддержка обновлений веб-приложений путем реализации многоконтейнерной группы. Один контейнер в группе обслуживает веб-приложение, а другой контейнер извлекает последнее содержимое из системы управления версиями.
Рассмотрим сбор данных журнала. Используйте группу с несколькими контейнерами для записи данных журнала и метрик о приложении. Контейнер приложения выводит журналы и метрики. Контейнер ведения журнала собирает выходные данные и записывает данные в долгосрочное хранилище.
Рассмотрите возможность мониторинга приложений. Включите мониторинг для приложения с помощью группы с несколькими контейнерами. Контейнер мониторинга периодически отправляет запрос контейнеру приложения, чтобы убедиться, что приложение работает и отвечает правильно. Контейнер мониторинга вызывает оповещение, если оно определяет возможные проблемы с приложением.
Рассмотрим поддержку внешнего интерфейса и серверной части. Создайте группу с несколькими контейнерами для хранения внешнего контейнера и внутреннего контейнера. Интерфейсный контейнер может служить веб-приложением. Внутренний контейнер может запустить службу для получения данных.