Use `pkg/discovery` to provide nodes discovery between daemon instances.
The functionality is driven by two different command-line flags: the
experimental `--cluster-store` (previously `--kv-store`) and
`--cluster-advertise`. It can be used in two ways by interested
components:
1. Externally by calling the `/info` API and examining the cluster store
field. The `pkg/discovery` package can then be used to hit the same
endpoint and watch for appearing or disappearing nodes. That is the
method that will for example be used by Swarm.
2. Internally by using the `Daemon.discoveryWatcher` instance. That is
the method that will for example be used by libnetwork.
Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>
Upstream-commit: f95e9f7c72
Component: cli
1.1 KiB
Native Multi-host networking
There is a lot to talk about the native multi-host networking and the overlay driver that makes it happen. The technical details are documented under https://github.com/docker/libnetwork/blob/master/docs/overlay.md.
Using the above experimental UI docker network, docker service and --publish-service, the user can exercise the power of multi-host networking.
Since network and service objects are globally significant, this feature requires distributed states provided by the libkv project.
Using libkv, the user can plug any of the supported Key-Value store (such as consul, etcd or zookeeper).
User can specify the Key-Value store of choice using the --cluster-store daemon flag, which takes configuration value of format PROVIDER:URL, where
PROVIDER is the name of the Key-Value store (such as consul, etcd or zookeeper) and
URL is the url to reach the Key-Value store.
Example : docker daemon --cluster-store=consul://localhost:8500
Send us feedback and comments on #14083 or on the usual Google Groups (docker-user, docker-dev) and IRC channels.