Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Архитектуры микрослужб обычно упаковывает и развертывает каждый экземпляр микрослужбы в одном контейнере. Многие экземпляры микрослужб могут выполняться в отдельном контейнере. Контейнеры являются легковесными и краткоживущими, что упрощает их создание и уничтожение, но затрудняет координацию и взаимодействие между собой.
В этой статье рассматриваются проблемы запуска архитектуры контейнерных микрослужб при масштабах промышленного уровня и влияние оркестрации контейнеров на их решение. В этой статье представлено несколько вариантов оркестрации контейнеров Azure.
Архитектура контейнерных микрослужб
В этом простом контейнеризованном кластере службы Azure Kubernetes (AKS):
- Один экземпляр Microservice A выполняется в узле 1, другой экземпляр узла 2 и третий экземпляр узла 3.
- Один экземпляр Микрослужбы B выполняется в узле 1, а другой экземпляр в узле 3.
- Контейнерные обратные прокси-серверы работают в узлах 1 и 2 для распределения трафика.
Чтобы управлять кластером, команда DevOps должна выполнять следующие действия.
- Запуск нескольких экземпляров контейнера на каждом узле.
- Балансировка нагрузки трафика между экземплярами.
- Управление взаимодействием зависимых экземпляров в отдельных узлах.
- Сохраняйте требуемое состояние кластера AKS.
С помощью оркестрации контейнеров команда DevOps может представлять требуемое состояние кластера в качестве конфигурации. Подсистема оркестрации контейнеров применяет нужную конфигурацию и автоматизирует все задачи управления.
Рассмотрите возможность контейнеризации простого трехуровневого веб-приложения:
- Контейнер размещает интерфейсный компонент.
- Другой контейнер размещает уровень среднего уровня или уровень REST API.
- Уровень среднего уровня взаимодействует с глобально распределенной базой данных.
Выполнение этих контейнеров на одном компьютере разработки может оказаться не слишком сложным. Однако запуск приложения в режиме высокой доступности в большом масштабе в рабочем кластере быстро становится сложной задачей. Оркестрация контейнеров имеет решающее значение для больших и динамических производственных сред.
Преимущества оркестрации контейнеров
В следующем примере показано, как оркестрация контейнеров может помочь управлять развертыванием кластера, сетью и масштабированием.
Оркестратор контейнера:
Автоматически масштабирует количество экземпляров микрослужб на основе трафика или использования ресурсов. В этом примере оркестратор автоматически добавляет ещё одну копию Microservice A в ответ на возросший трафик.
Управляет контейнерами для отражения настроенного требуемого состояния. В примере Микрослужба B настроена на два экземпляра. Один экземпляр стал неисправным, поэтому оркестратор поддерживает требуемое состояние, создавая другой экземпляр.
Упаковывает контейнеры микрослужб в простой слой сервиса. Уровень службы:
- Абстрагирует сложности, такие как IP-адрес, порт и количество экземпляров.
- Балансировка нагрузки трафика между экземплярами микрослужб.
- Поддерживает простое взаимодействие между зависимыми экземплярами микрослужб.
Оркестраторы контейнеров также обеспечивают гибкость и управление трафиком для:
- Выпуск новых версий или откат до старых версий микрослужб или наборов микрослужб без простоя.
- Включите параллельное тестирование различных версий микрослужб.
Выбор оркестратора контейнеров Azure
Ниже приведены некоторые варианты реализации оркестрации контейнеров микрослужб в Azure:
Служба Azure Kubernetes (AKS) — это полностью управляемая служба Kubernetes службы оркестрации контейнеров в Azure, которая упрощает развертывание и управление контейнерными приложениями. AKS обеспечивает эластичную подготовку, гибкую модель развертывания приложений и расширенное управление удостоверениями и доступом.
Экземпляры контейнеров Azure (ACI) — самый быстрый и простой способ выполнения контейнера в Azure. При использовании ACI вам не нужно управлять виртуальными машинами или адаптировать службы более высокого уровня.
Для простых сценариев оркестрации можно использовать Docker Compose для определения и запуска многоконтейнерного приложения локально. Затем разверните контейнеры Docker в качестве группы контейнеров ACI в управляемой бессерверной среде Azure. Для полных сценариев оркестрации контейнеров ACI может интегрироваться с AKS для создания виртуальных узлов для оркестрации AKS.
Приложения контейнеров Azure — это полностью управляемая служба контейнеров без сервера для создания и развертывания современных приложений в масштабе. С помощью контейнерных приложений можно запускать микрослужбы, созданные с помощью Spring Boot и других платформ без необходимости управлять инфраструктурой. Контейнерные приложения поддерживают встроенную автомасштабирование, разделение трафика и интеграцию с Azure.
Azure Red Hat OpenShift (ARO) поддерживает развертывание полностью управляемых кластеров OpenShift в Azure. Для выполнения производственных контейнеров Kubernetes требуется интеграция с платформами и инструментами, такими как реестры образов, управление хранилищами, мониторинг и DevOps. ARO расширяет Kubernetes, интегрируя эти компоненты в единую платформу контейнеров как услугу (PaaS).
Участники
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Основной автор:
- Veerash Ayagari | Главный инженер программного обеспечения
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.
Дальнейшие действия
- архитектура микрослужб в службе Azure Kubernetes (AKS)
- Расширенная архитектура микросервисов Azure Kubernetes Service (AKS)
- CI/CD для приложений AKS с Azure Pipelines
- использование шлюзов API в микрослужбах