Использование docker-machine для подготовки спотового экземпляра открывает спотовый запрос и ожидает его выполнения. Если это не удается, докер-машина завершает работу, но спотовый запрос остается открытым и может быть выполнен позже. Это приводит к запросу висячего места с активным экземпляром.
Похоже, что это происходит и во многих других случаях.
$ ./docker-machine-setup.sh # Run docker-machine create with spot instance..
Running pre-create checks...
Creating machine...
(aws01) Launching instance...
(aws01) Waiting for spot instance...
^C
[0] ~$ docker-machine rm aws01
About to remove aws01
Are you sure? (y/n): y
Error removing host "aws01": unknown instance
MissingParameter: The request must contain the parameter KeyName
status code: 400, request id:
Аналогично, если спотовый запрос отменен в консоли. Происходит то же самое.
Также:
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
aws01 - amazonec2 Error Unknown MissingParameter: The request must contain the parameter InstanceId
status code: 400, request id:
Похоже, что в конечном автомате докер-машины полностью отсутствует состояние - факт, что эта машина еще не выделена? !! Отсутствие выделения спотового экземпляра не является состоянием «Ошибка».
Это постоянно изводит наших CI-бегунов спотовыми инстансами.
Здесь та же проблема. Кто-то придумал обходной путь?
Я сделал патч для правильной очистки зависшего ресурса в случае сбоя создания машины AWS. # 4317
Самый полезный комментарий
Это постоянно изводит наших CI-бегунов спотовыми инстансами.