Reputation: 29557
Please note: This is a very similar question as this one, but I assert this is not a dupe! That other question was clearly based on the (older) Python-based Docker registry, not the latest one that is written in GoLang and seems to be fairly different!
I just spent a few hours reading the docs for setting up a private Docker Registry and have it running on a remote VM with the following characteristics:
So far so good. But now I want to make it HA, and am shocked that the docs don't seem to make any mention of it. In the old Python docs there is a whole section devoted to HA, but I'm leery of following them because the newer (GoLang-based) registry doesn't seem to mention HA at all.
So my concerns:
Upvotes: 2
Views: 2190
Reputation: 1327784
This is actually referenced in "Deploying a registry server - Load Balancing Considerations"
One may want to use a load balancer to distribute load, terminate TLS or provide high availability. While a full load balancing setup is outside the scope of this document, there are a few considerations that can make the process smoother.
The most important aspect is that a load balanced cluster of registries must share the same resources. For the current version of the registry, this means the following must be the same:
- Storage Driver
- HTTP Secret
- Redis Cache (if configured)
That means the actual high-availability feature is considered out-of-scope for the docker distribution project, but it can still be implemented by adding a load balancer.
Upvotes: 1