docker-machineを使用してスポットインスタンスをプロビジョニングすると、スポットリクエストが開き、それが実行されるのを待ちます。 これが失敗した場合、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ステートマシンは完全に状態を失っているようです-このマシンがまだ割り当てられていないという事実?!! スポットインスタンスを割り当てていないことは、「エラー」状態ではありません。
これは、CIランナーを常にスポットインスタンスで悩ませます。
ここで同じ問題。 誰かが回避策を考え出しましたか?
AWSマシンの作成に失敗した場合に、ぶら下がっているリソースを適切にクリーンアップするためのパッチを適用しました。 #4317
最も参考になるコメント
これは、CIランナーを常にスポットインスタンスで悩ませます。