使用 docker-machine 来配置 Spot 实例打开一个 Spot 请求并等待它被满足。 如果失败,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:
似乎 docker-machine 状态机完全缺少一个状态——这台机器还没有分配的事实?! 未分配 Spot 实例不是“错误”状态。
这一直困扰着我们的 CI 运行者与现场实例。
同样的问题在这里。 有人想出了一个解决方法?
我做了一个补丁,以便在 AWS 机器创建失败的情况下正确清理悬空资源。 第4317章
最有用的评论
这一直困扰着我们的 CI 运行者与现场实例。