Что такое оркестрация контейнеров?

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

Почему необходима оркестрация контейнеров?

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

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

Примеры использования оркестрации контейнеров

Инструменты оркестрации контейнеров требуются, когда вам нужно:

  • управлять контейнерами и масштабировать их в нескольких инстансах; 
  • запускать множество различных контейнерных приложений;
  • запускать разные версии приложений (например, тестирование и производство непрерывной интеграции и доставки (CI/CD)) одновременно;
  • обеспечивать непрерывность службы приложений в случае сбоя сервера, запустив несколько инстансов (реплик) контейнера;
  • запускать несколько инстансов приложения в разных географических регионах;
  • максимально использовать несколько инстансов серверов для составления бюджета;
  • запускать большие контейнерные приложения, состоящие из тысяч различных микросервисов.

В чем преимущества оркестрации контейнеров?

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

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

Ниже приведены дополнительные преимущества оркестрации контейнеров.

Встроенная устойчивость

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

Повышенная производительность

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

Оптимизация использования ресурсов

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

Как работает оркестрация контейнеров?

Контейнеры – это автономные приложения или микросервисы на базе Linux со всеми библиотеками и функциями, необходимыми для работы практически на любом типе машин. Оркестрация контейнеров осуществляется путем управления контейнерами в группе инстансов сервера (так называемых узлах). Группа узлов, на которых работают взаимосвязанные контейнеры, называется кластером

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

Создание и планирование

Решение для оркестрации контейнеров считывает декларативный файл конфигурации, написанный на языке YAML или JSON, чтобы узнать конкретное требуемое состояние системы. Используя информацию, указанную в файле, инструмент:

  1. получает образы контейнеров из их реестра;
  2. предусматривает контейнеры в соответствии с их индивидуальными требованиями;
  3. определяет необходимое сетевое взаимодействие между контейнерами. 

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

Управление

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

  • распределение ресурсов между контейнерами;
  • развертывание контейнеров на новых узлах или удаление контейнеров;
  • балансировка нагрузки трафика к приложению.

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

В чем заключаются сложности оркестрации контейнеров?

Ниже перечислены некоторые сложности оркестрации контейнеров.

Дополнительные уровни управления

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

Недостаточная подготовка

Для оптимальной оркестрации контейнеров недостаточно просто иметь подходящий инструмент. Вам также нужен опытный специалист по управлению инструментами, который справится с оркестрацией, определит желаемое состояние и изучит результаты мониторинга. Для администрирования сложных контейнерных сред необходимо глубокое понимание DevOps, процессов непрерывной интеграции и доставки (CI/CD), контейнеризации и архитектуры машин. Чтобы сформировать нужный набор навыков в команде, может потребоваться обучение.

Конфигурации управления версиями

У приложения с программным обеспечением есть разные версии – специальные сборки для определенных сред, таких как разработка, тестирование и производство. Точно так же инструменты оркестрации контейнеров требуют нескольких документированных конфигураций с историей версий. Это означает, что они могут выполнять быстрое и повторяемое выделение ресурсов, а также развертывание и управление.

Как AWS поддерживает требования к оркестрации контейнеров?

Amazon ECS – это полностью управляемый сервис оркестрации контейнеров, позволяющий организациям создавать контейнерные приложения, развертывать их и управлять ими в любом масштабе на AWS. Сервис не имеет версий и автоматически управляет выделением ресурсов кластера. Вы сохраняете контроль над эксплуатационными свойствами контейнеров с возможностью указывать требования к ЦП и памяти, а также над политиками сети и IAM, типом запуска и объемами данных. С помощью вызовов API можно запускать и останавливать контейнерные приложения, получать данные о состоянии всего кластера и пользоваться знакомыми функциями AWS, например группами безопасности, эластичной балансировкой нагрузки (ELB), томами магазина эластичных блоков Amazon (EBS) и ролями управления идентификацией и доступом AWS (IAM). 

Те, кто использует Kubernetes для оркестрации контейнеров, могут также задействовать Эластичный сервис Amazon Kubernetes (Amazon EKS) – управляемый сервис Kubernetes для запуска сервисов Kubernetes в облаке AWS или локальных центрах обработки данных. В локальной среде сервис EKS предоставляет стабильное и полностью поддерживаемое решение для Kubernetes со встроенным инструментарием и развертыванием в AWS Outposts, виртуальных машинах и серверах. Amazon EKS автоматически управляет доступностью и масштабируемостью узлов плоскости управления Kubernetes, отвечающих за различные задачи: планирование контейнеров, управление доступностью приложений, хранение данных кластера и т. д. Этот сервис позволяет использовать преимущества инфраструктуры AWS: производительность, масштабируемость, надежность и доступность, а также интеграцию с сервисами AWS для сети и безопасности.

Создайте аккаунт и начните работу с AWS уже сегодня. 

AWS: дальнейшие шаги

Зарегистрировать бесплатный аккаунт

Получите мгновенный доступ к уровню бесплатного пользования AWS.

Регистрация 
Начать разработку в консоли

Начните разработку в Консоли управления AWS.

Вход