Оркестрация контейнеров для микросервисов

Служба Azure Kubernetes (AKS)
Приложения-контейнеры Azure
Экземпляры контейнеров Azure

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

В этой статье рассматриваются проблемы запуска архитектуры контейнерных микрослужб при масштабах промышленного уровня и влияние оркестрации контейнеров на их решение. В этой статье представлено несколько вариантов оркестрации контейнеров 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.

Дальнейшие действия