In Multiverse applications, each application registers itself with Eureka. Because Marvel has a load balancer placed in front of the application containers, we need to register the load balancer rather than each application.
Registrator monitors the running containers, determines the load balancer used for the application then registers the load balancer with Eureka and performs heartbeats.
With Multiverse you’ve probably seen cases where an instance will drop out of Eureka, this is usually because the application crashes and stops heartbeating. With Marvel we have multiple copies of registrator doing heartbeats. An application crashing will cause the container to get automatically replaced with no disruption to heartbeats.
If you are a consumer of this project in the open source community, and eureka support is useful for you, please feel free to contribute issues and PRs.
We've seen 1 case of registrator hanging on an instance and not detecting new containers. In production with at least 3 instances of an application running this would only cause issues if all 3 registrator copies were hanging.
Prod: _sourceCategory=app_registrator
Thor _index=thor_env _sourceCategory=THOR_app_registrator
There are docs on the hudl development process and tools for registrator docs/dev/hudl.md.
This hudl version of registrator is a fork of the gliderlabs open source project, which was released under the MIT license (see further docs below). It has at this point been quite heavily customised for hudl, and has the main addition of a eureka support PR, which was never merged into the upsteam repository (see: gliderlabs#360). Because of this, we've had some difficulty merging back improvements and changes. It should be possible to merge in upsteam changes, but there is some work involved to switch to using the new dependency management that the upsteam has adopted.
Service registry bridge for Docker.
Registrator automatically registers and deregisters services for any Docker container by inspecting containers as they come online. Registrator supports pluggable service registries, which currently includes Consul, etcd and SkyDNS 2.
Full documentation available at http://gliderlabs.com/registrator
Get the latest release, master, or any version of Registrator via Docker Hub:
$ docker pull gliderlabs/registrator:latest
Latest tag always points to the latest release. There is also a :master
tag
and version tags to pin to specific releases.
The quickest way to see Registrator in action is our Quickstart tutorial. Otherwise, jump to the Run Reference in the User Guide. Typically, running Registrator looks like this:
$ docker run -d \
--name=registrator \
--net=host \
--volume=/var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator:latest \
consul://localhost:8500
Pull requests are welcome! We recommend getting feedback before starting by opening a GitHub issue or discussing in Slack.
Also check out our Developer Guide on Contributing Backends and Staging Releases.
Big thanks to Weave for sponsoring, Michael Crosby for skydock, and the Consul mailing list for inspiration.
For a full list of sponsors, see SPONSORS.
MIT