Pivotal RabbitMQ for Kubernetes (Beta)

Page last updated:

Warning: Pivotal RabbitMQ for Kubernetes is currently in beta and is intended for evaluation and test purposes only. Do not use this product in a production environment.

Pivotal RabbitMQ for Kubernetes is a Kubernetes Operator that automates provisioning, managing, and operating RabbitMQ clusters running on Kubernetes.

Kubernetes Operators are software extensions to Kubernetes that make use of custom resources to manage apps and their components. For general information about Operators, see the Kubernetes documentation.

Overview

RabbitMQ for Kubernetes provides a consistent and easy way to deploy RabbitMQ clusters to Kubernetes and manage their lifecycle. RabbitMQ clusters can be accessed by apps running on Kubernetes, Pivotal Application Service, or elsewhere.

RabbitMQ for Kubernetes has two main components:

  • A Kubernetes Operator that automates the provision, management, and operations of RabbitMQ clusters
  • (Optional) An OSBAPI-compliant service broker for integration with Pivotal Platform

When combined with Pivotal Application Service, RabbitMQ for Kubernetes enables you to create and bind RabbitMQ clusters with single commands. Run cf create-service to create RabbitMQ clusters and run cf bind-service to bind them to a Pivotal Application Service-deployed app.

Key Features

RabbitMQ for Kubernetes includes the following key features:

  • Provisioning of single-node and three-node RabbitMQ clusters
  • Automatic reconciliation of deployed clusters whenever their actual state does not match the expected state
  • Integration with Pivotal Platform through an OSBAPI-compliant service broker
  • Monitoring of RabbitMQ clusters through Prometheus and Grafana. For more information, see the Prometheus and Grafana documentation.

Automated upgrades of RabbitMQ clusters, another key feature, is planned for a later update.

Product Snapshot

The following table provides version and version-support information about RabbitMQ for Kubernetes.

Element Details
Version 0.4.0
Release date October 28, 2019
Software component version RabbitMQ OSS 3.8.0

Requirements

RabbitMQ for Kubernetes has the following requirements:

  • RabbitMQ for Kubernetes requires a v1.14 or later Kubernetes cluster

Limitations

The following section lists limitations of RabbitMQ for Kubernetes.

General Limitations

  • This product is currently in beta. Pivotal does not provide commercial support.
  • This product is intended to be used with any Kubernetes distribution. However, given the number of Kubernetes vendors, versions, and configurations, not all of them have been tested with RabbitMQ for Kubernetes.
  • Product upgrades are not supported. If you want to test a newer version, delete the previous version first.

RabbitMQ Cluster Updates

After you create a RabbitMQ cluster, you cannot update the cluster or any of its child objects. Child objects include StatefulSet, ConfigMap, Service, and Secret. If you try to update any of the configurations, there is no effect.

StatefulSet, ConfigMap and Service objects are re-created if you delete them. However, Secret objects are not re-created automatically. If you delete Secret objects, you must manually re-create the secret or delete and re-create the cluster.

Provision Status of Service Instance

Due to the eventually-consistent design of Kubernetes, the service broker cannot detect when a deployment:

  • Is taking a long time but will eventually succeed
  • Has failed temporarily but could succeed on another attempt
  • Has failed permanently and needs human intervention to succeed

Because of this, the service broker never returns a deployment failed status and instead returns create in progress. For more information, see Troubleshooting Pivotal RabbitMQ for Kubernetes.

Feedback

If you have a feature request, questions, or information about an issue, please email RabbitMQ for Kubernetes Feedback.