Die Verwendung von docker-machine zum Bereitstellen einer Spot-Instanz öffnet eine Spot-Anfrage und wartet darauf, dass sie erfüllt wird. Wenn dies fehlschlägt, wird docker-machine beendet, aber die Spot-Anfrage bleibt offen und kann später erfüllt werden. Dies führt zu einer Dangling-Spot-Anfrage mit einer aktiven Instanz.
Dies scheint auch in vielen anderen Fällen der Fall zu sein.
$ ./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:
Ebenso, wenn die Spot-Anfrage in der Konsole abgebrochen wird. Das Gleiche passiert.
Ebenfalls:
$ 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:
Es scheint, als ob der Docker-Maschinen-Zustandsmaschine ein Zustand völlig fehlt - die Tatsache, dass diese Maschine noch nicht zugewiesen wurde?!! Eine Spot-Instanz nicht zugewiesen zu haben, ist kein 'Fehler'-Zustand.
Dies plagt unsere CI-Läufer ständig mit Spot-Instanzen.
Gleiches Problem hier. Hat jemand einen Workaround gefunden?
Ich habe einen Patch für eine ordnungsgemäße Bereinigung der baumelnden Ressourcen im Falle eines Fehlers bei der AWS-Maschinenerstellung durchgeführt. #4317
Hilfreichster Kommentar
Dies plagt unsere CI-Läufer ständig mit Spot-Instanzen.