AWS Задача ECS все еще выполняется, несмотря на отсутствие доступных экземпляров - PullRequest
0 голосов
/ 25 января 2020

При изучении AWS ECS я создал спот-кластер Fargate и определил один сервис с одной задачей. Я вижу, что запрос Spot для экземпляров EC2 был создан автоматически, в соответствии с конфигурацией, которую я указывал при раскрутке кластера Fargate.

Сейчас я все еще могу получить доступ к приложению, хотя в истории запроса Spot указывается MaxSpotInstanceCountExceeded через 1 секунду после активации моего экземпляра - ошибка повторяется каждые несколько минут в течение последних 6 часов.

Я прочитал, что Fargate Spot попытается ускорить альтернативный экземпляр спота, если отправлено уведомление о прекращении на тот, который я использую в настоящее время, но я не понимаю, как это возможно, что мое приложение все еще работает, так как запрос Spot находится в состоянии error.

  1. Использует ли Fargate другую стратегию за то, что я держу экземпляры на месте, чем я думал Я не предоставлял никаких дополнительных провайдеров мощности для моего кластера
  2. В дополнение к первому вопросу, есть ли какие-либо гарантии доступности при использовании точечного запуска Fargare?
  3. Как я могу проверить, работает ли мой кластер на самом деле использует точечные экземпляры? Я не смог идентифицировать эту информацию в консоли AWS и не использовать aws-cli. Единственным индикатором, который я смог найти, был общий su bnet, используемый для выборочного запроса, и мой кластер ECS
  4. Почему я получаю ошибку MaxSpotInstanceCountExceeded? Я не крутил другие экземпляры спотов, поэтому я удивлен, что Фаргейт исчерпал лимит спотовых инстансов. Или, может быть, есть другая причина этой проблемы?
  5. Могу ли я изменить свой кластер Fargate Spot, чтобы расширить желаемые типы EC2, чтобы минимизировать проблему недоступности точечного экземпляра?

1 Ответ

1 голос
/ 26 января 2020

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

Использует ли Fargate другая стратегия для поддержания точных экземпляров, чем я думал? Я не предоставлял никаких дополнительных провайдеров мощности для моего кластера

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

Этот экземпляр ведет себя как любой другой экземпляр Spot и может быть восстановлен Spot EC2 в любое время с 2-минутным предупреждением перед завершением задачи и возвратом экземпляра в Spot. Конечно, если задача завершается до того, как экземпляр будет возвращен в EC2 Spot, задача будет выполняться как обычно.

В дополнение к первому вопросу, есть ли гарантии доступности при использовании точки Fargare тип запуска?

Нет, нет гарантий доступности при использовании Spot в любой форме (EC2 или Fargate). Смысл Spot в том, что вы получаете доступ к неиспользуемой вычислительной мощности , если есть доступная , и что вычислительная емкость может быть восстановлена ​​в любое время с 2-минутным предупреждением. По этой причине Spot намного дешевле обычного использования по требованию.

Почему я получаю ошибку MaxSpotInstanceCountExceeded? Я не крутил другие экземпляры спотов, поэтому я удивлен, что Фаргейт исчерпал лимит спотовых инстансов. Или, может быть, есть другая причина этой проблемы?

Где вы получаете эту ошибку. Как упоминалось выше, Fargate управляет вычислительной мощностью, используемой для запуска всех задач Fargate, как по требованию, так и Spot, поэтому количество выполняемых задач Fargate Spot не влияет на количество экземпляров EC2 Spot, которые вы можете запускать вне Fargate. Вы также не увидите экземпляров EC2 Spot в своей учетной записи при выполнении задач Fargate Spot, поскольку соответствующие экземпляры Spot находятся в учетных записях службы Fargate.

Могу ли я изменить свой кластер Fargate Spot, чтобы расширить желаемый EC2 типы, чтобы минимизировать проблему спот-экземпляра-недоступности?

Нет, у вас нет возможности влиять на то, какие типы экземпляров используются при использовании Fargate.

Задачи Fargate Spot не запускаются из-за Чтобы определить емкость, недоступную очень редко (если посмотреть на показатели обслуживания), если вы можете отправить мне соответствующий идентификатор задачи и информацию о регионе, где вы видели это, я могу попросить команду посмотреть его.

...