This repository has been moved to the main unified RabbitMQ "monorepo", including all open issues. You can find the source under /deps/rabbitmq_peer_discovery_k8s. All issues have been transferred.
This is an implementation of RabbitMQ peer discovery interface for Kubernetes.
This plugin only performs peer discovery using Kubernetes API as the source of data on running cluster pods. 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.
For a more comprehensive open source RabbitMQ on Kubernetes deployment solution, see the RabbitMQ Cluster Operator for Kubernetes. The Operator is developed on GitHub and contains its own set of examples.
This plugin ships with RabbitMQ 3.7.0 or later.
This plugin ships with supported RabbitMQ versions. There is no need to install it separately.
As with any plugin, it must be enabled before it can be used. For peer discovery plugins it means they must be enabled or preconfigured before first node boot:
rabbitmq-plugins --offline enable rabbitmq_peer_discovery_k8s
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 in an RabbitMQ on Kubernetes examples repository. 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, persistent volume settings, access control, sizing, and so on.
See CONTRIBUTING.md and our development process overview.
Licensed under the MPL, same as RabbitMQ server.
(c) 2007-2020 VMware, Inc. or its affiliates.