rabbitmq / rabbitmq-peer-discovery-k8s

Kubernetes-based peer discovery mechanism for RabbitMQ
Other
294 stars 94 forks source link
clustering k8s kubernetes rabbitmq rabbitmq-plugin

RabbitMQ Peer Discovery Kubernetes

This was migrated to https://github.com/rabbitmq/rabbitmq-server

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.

Overview

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.

Supported RabbitMQ Versions

This plugin ships with RabbitMQ 3.7.0 or later.

Installation

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

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 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.

Contributing

See CONTRIBUTING.md and our development process overview.

License

Licensed under the MPL, same as RabbitMQ server.

Copyright

(c) 2007-2020 VMware, Inc. or its affiliates.