Comments (5)
@jmatsushita This is a known issue. Unfortunately Docker Machine's fan-out plugin architecture makes it impossible for the driver to control the global rate of API calls. Operational errors caused by exceeding API rate limits therefore have to be addressed in Docker Machine first and foremost.
It's unfortunate that Vultr does not see the need for action on their part. In fact, they should change their API rate-limit mechanism to some sane per-minute averaged model instead of imposing a ridiculous 2 req/second limit that get's already tripped by synchronously sending 4 API calls in a row.
That being said, the good news is that i am already working on implementing a retry mechanism to deal with rate-exceeded API errors.
from docker-machine-vultr.
Not a very good answer from them... Checking on a resource that is in a transitioning state every 2 seconds is not an unreasonable use-case. If the queries are that expensive they should have caching on their API layer, not pass their problem down to the clients.
Limiting individual expensive or cacheable calls is one thing, but limiting the entire API to 2 requests/second, particularly with what sounds like a very high-resolution measurement ("2 requests in this second" vs an average like "120 request in the last 60 seconds") is frankly ridiculous.. They're just making it difficult for people to make request to give them money.
(Source: Worked on public APIs for a much larger hosting company in a previous life)
Anyway, I changed the Rancher UI to create one machine at a time, which will probably be good enough to fix it. rancher/ui#605
Also added an option to for createDelayMs
that custom driver UIs can use, though someone would have to make one for Vultr to make use of this (see https://github.com/rancher/ui-driver-skel).
from docker-machine-vultr.
@vincent 😄
from docker-machine-vultr.
Anyway, I changed the Rancher UI to create one machine at a time, which will probably be good enough to fix it. rancher/ui#605
Also added an option to for createDelayMs that custom driver UIs can use, though someone would have to make one for Vultr to make use of this (see https://github.com/rancher/ui-driver-skel).
Awesome! I think the one machine at a time change will probably be enough to solve this. If not i will take a look at the driver UI skeleton and make one for Vultr.
from docker-machine-vultr.
Release v1.0.7 implements retry logic for API rate-limit errors.
from docker-machine-vultr.
Related Issues (20)
- I often received "Could not get lock /var/lib/dpkg/lock" error while creating docker host HOT 7
- Failed to create Vultr host as the Public IP of the server became '0.0.0.0' HOT 11
- Invoking vultr boot scripts HOT 3
- Unable to query docker version: Cannot connect to the docker engine endpoint HOT 5
- The default plan `93` is deprecated HOT 1
- docker-machine create not compatible with VULTR firewall HOT 1
- Docker machine fails to create multiple servers at the same time HOT 6
- Debian based distros no longer finish provisioning HOT 1
- CentOS 7 no longer provisions correctly HOT 1
- How can I deploy a Docker Application on Vultr?
- How to add an already provisioned machine?
- Make this go get'able
- Deploying a RancherOS cluster (Docker Swarm Mode)
- ssh never becomes available HOT 6
- Should we try to do a PR with your code to docker-machine to be an official provider? HOT 2
- Download link in main Readme points to old version
- Creating docker machine hangs on 'Waiting machine to be running' HOT 6
- How to build an i386 binary? HOT 1
- Vultr SSH key with ID doesn't exist during creation in docker machine HOT 1
- RancherOS - Doesn't work at all HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docker-machine-vultr.