Kubernetes-based peer discovery backend for RabbitMQ 3.7.0+

README.md

RabbitMQ Peer Discovery Kubernetes

This is an K8s-based implementation of RabbitMQ peer discovery interface (new in 3.7.0, previously available in the rabbitmq-autocluster plugin by Gavin Roy).

This plugin only performs peer discovery using Kubernetes API as a data source. Please get familiar with RabbitMQ clustering fundamentals before attempting to use it.

Cluster provisioning and most of Day 2 operations such as proper monitoring are not in scope for this plugin.

Supported RabbitMQ Versions

This plugin requires RabbitMQ 3.7.0 or later.

For a K8s-based peer discovery and cluster formation mechanism that supports 3.6.x, see rabbitmq-autocluster.

Installation

This plugin ships with RabbitMQ as of 3.7.0. There is no need to install it separately. Enable the plugin in offline mode before the node is first started:

rabbitmq-plugins --offline enable rabbitmq_peer_discovery_k8s

Documentation

See RabbitMQ Cluster Formation guide for an overview of the peer discovery subsystem, general and Kubernetes-specific configurable values and troubleshooting tips.

Example deployments that use this plugin can be found under examples. Note that they are just that, examples, and won't be optimal for every use case or cover a lot of important production system concerns such as monitoring and sizing.

Contributing

See CONTRIBUTING.md and our development process overview.

License

Licensed under the MPL, same as RabbitMQ server.

Copyright

(c) Pivotal Software Inc., 2007-2018.