Skip to content

Commit c8be0b3

Browse files
committed
An example of a production cluster configuration.
Closes #398
1 parent 25d2528 commit c8be0b3

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

Diff for: docs/examples/production/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Production Example
2+
3+
This is an example of a good starting point for a production RabbitMQ deployment. It deploys a 3-node cluster with enough resources to handle reasonable traffic.
4+
5+
Please keep in mind that:
6+
7+
1. It may not be suitable for YOUR production deployment. Please go through the [Production Checklist](https://www.rabbitmq.com/production-checklist.html) to learn more about production deployment considerations.
8+
9+
2. While it is important to correctly deploy RabbitMQ cluster for production deployment, it is even more important to correctly use RabbitMQ from your applications. [Production Checklist](https://www.rabbitmq.com/production-checklist.html) covers some of the common issues such as connection churn and polling cunsumers. Please also consider using [Quorum Queues](https://www.rabbitmq.com/quorum-queues.html) since they provide better data safety.
10+
11+
You can deploy this example like this:
12+
13+
```shell
14+
kubectl apply -f rabbitmq.yaml
15+
```
16+
17+
Please keep in mind that you need a multi-zone Kubernetes cluster with 6 CPUs, 24Gi RAM, 384Gi disk space available as well as a `storageClass` called `ssd` to deploy this example as-is. Of course you can adjust these values to your environment if needed.

Diff for: docs/examples/production/rabbitmq.yaml

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
apiVersion: rabbitmq.com/v1beta1
2+
kind: RabbitmqCluster
3+
metadata:
4+
name: production
5+
spec:
6+
replicas: 3
7+
resources:
8+
requests:
9+
cpu: 2
10+
memory: 8Gi
11+
limits:
12+
cpu: 2
13+
memory: 8Gi
14+
rabbitmq:
15+
additionalConfig: |
16+
cluster_partition_handling = ignore
17+
vm_memory_high_watermark_paging_ratio = 0.99
18+
disk_free_limit.relative = 1.0
19+
persistence:
20+
storageClassName: ssd
21+
storage: "128Gi"
22+
override:
23+
statefulSet:
24+
spec:
25+
template:
26+
spec:
27+
containers: []
28+
topologySpreadConstraints:
29+
- maxSkew: 1
30+
topologyKey: zone
31+
whenUnsatisfiable: DoNotSchedule
32+
labelSelector:
33+
matchLabels:
34+
app.kubernetes.io/component: rabbitmq

0 commit comments

Comments
 (0)