You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Support for PodDisruptionBudget for Broker nodes in High Availability mode - Resolves#107
* Readiness check reliability improvements
* Config-sync improvements in High Availability mode
* Readiness check clearer logging
Copy file name to clipboardExpand all lines: README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ The [Solace PubSub+ Platform](https://solace.com/products/platform/)'s [software
6
6
7
7
## Overview
8
8
9
-
This project is a best practice template intended for development and demo purposes. The tested and recommended Solace PubSub+ Software Event Broker version is 9.10.
9
+
This project is a best practice template intended for development and demo purposes. The tested and recommended Solace PubSub+ Software Event Broker version is 10.0.
10
10
11
11
This document provides a quick getting started guide to install a software event broker in various configurations onto a [Kubernetes](https://kubernetes.io/docs/home/) cluster.
-[Enabling a Disruption Budget for HA deployment](#enabling-a-disruption-budget-for-ha-deployment)
17
18
-[Reducing resource requirements of Monitoring Nodes in an HA deployment](#reducing-resource-requirements-of-monitoring-nodes-in-an-ha-deployment)
18
19
+[Disk Storage](#disk-storage)
19
20
-[Allocating smaller storage to Monitor pods in an HA deployment](#allocating-smaller-storage-to-monitor-pods-in-an-ha-deployment)
20
21
-[Using the default or an existing storage class](#using-the-default-or-an-existing-storage-class)
21
22
-[Creating a new storage class](#creating-a-new-storage-class)
22
23
-[Using an existing PVC (Persistent Volume Claim)](#using-an-existing-pvc-persistent-volume-claim-)
23
24
-[Using a pre-created provider-specific volume](#using-a-pre-created-provider-specific-volume)
25
+
-[Tested storage environments and providers](#tested-storage-environments-and-providers)
24
26
+[Exposing the PubSub+ Event Broker Services](#exposing-the-pubsub-software-event-broker-services)
25
27
-[Specifying Service Type](#specifying-service-type)
26
28
-[Using Ingress to access event broker services](#using-ingress-to-access-event-broker-services)
@@ -89,6 +91,10 @@ There are two deployment options described in this document:
89
91
* The recommended option is to use the [Kubernetes Helm tool](https://github.com/helm/helm/blob/master/README.md), which can also manage your deployment's lifecycle, including upgrade and delete.
90
92
* Another option is to generate a set of templates with customized values from the PubSub+ Helm chart and then use the Kubernetes native `kubectl` tool to deploy. The deployment will use the authorizations of the requesting user. However, in this case, Helm will not be able to manage your Kubernetes rollouts lifecycle.
91
93
94
+
It is also important to know that Helm is a templating tool that helps package PubSub+ Software Event Broker deployment into charts.
95
+
It is most useful when first setting up broker nodes on the Kubernetes cluster. It can handle the install-update-delete lifecycle for the broker nodes deployed to the cluster.
96
+
It can not be used to scale-up, scale down or apply custom configuration to an already deployed PubSub+ Software Event Broker.
97
+
92
98
The next sections will provide details on the PubSub+ Helm chart, dependencies and customization options, followed by [deployment prerequisites](#deployment-prerequisites) and the actual [deployment steps](#deployment-steps).
@@ -135,6 +141,17 @@ Note: beyond CPU and memory requirements, required storage size (see next sectio
135
141
136
142
Also note, that specifying maxConnections, maxQueueMessages and maxSpoolUsage on initial deployment will overwrite the broker’s default values. On the other hand, doing the same using Helm upgrade on an existing deployment will not overwrite these values on brokers configuration, but it can be used to prepare (first step) for a manual scale up through CLI where these parameters can be actually changed (second step).
137
143
144
+
#### Enabling a Disruption Budget for HA deployment
145
+
146
+
One of the important parameters available to configure PubSub+ Software Event Broker HA is the [`podDisruptionBudget`](https://kubernetes.io/docs/tasks/run-application/configure-pdb/).
147
+
This helps you control and limit the disruption to your application when its pods need to be rescheduled for upgrades, maintenance or any other reason.
148
+
This is only available when we have the PubSub+ Software Event Broker deployed in [high-availability (HA) mode](//docs.solace.com/Overviews/SW-Broker-Redundancy-and-Fault-Tolerance.htm), that is, `solace.redundancy=true`.
149
+
150
+
In an HA deployment with Primary, Backup and Monitor nodes, we require a minimum of 2 nodes to reach a quorum. The pod disruption budget defaults to a minimum of two nodes when enabled.
151
+
152
+
To enable this functionality you have to set `solace.podDisruptionBudgetForHA=true` and `solace.redundancy=true`.
153
+
154
+
138
155
#### Reducing resource requirements of Monitoring Nodes in an HA deployment
139
156
140
157
The Kubernetes StatefulSet which controls the pods that make up a PubSub+ broker [deployment in an HA redundancy group](#deployment-scaling) does not distinguish between PubSub+ HA node types: it assigns the same CPU and memory resources to pods hosting worker and monitoring node types, even though monitoring nodes have minimal resource requirements.
@@ -259,6 +276,12 @@ Another example is using [hostPath](//kubernetes.io/docs/concepts/storage/volume
259
276
# this field is optional
260
277
type: Directory
261
278
```
279
+
#### Tested storage environments and providers
280
+
281
+
The PubSub+ Software Event Broker has been tested to work with the following, Portworx, Ceph, Cinder (Openstack), vSphere storage for Kubernetes as documented [here](https://docs.solace.com/Cloud/Deployment-Considerations/resource-requirements-k8s.htm#supported-storage-solutions).
282
+
However, note that for [EKS](https://docs.solace.com/Cloud/Deployment-Considerations/installing-ps-cloud-k8s-eks-specific-req.htm) and [GKE](https://docs.solace.com/Cloud/Deployment-Considerations/installing-ps-cloud-k8s-gke-specific-req.htm#storage-class), `xfs` produced the best results during tests.
283
+
[AKS](https://docs.solace.com/Cloud/Deployment-Considerations/installing-ps-cloud-k8s-aks-specific-req.htm) users can opt for `Local Redundant Storage (LRS)` redundancy. This is because they produce the best results
284
+
when compared with the other types available on Azure.
262
285
263
286
### Exposing the PubSub+ Software Event Broker Services
Copy file name to clipboardExpand all lines: pubsubplus/README.md
+1
Original file line number
Diff line number
Diff line change
@@ -81,6 +81,7 @@ For more ways to override default chart values, refer to [Customizing the Helm C
81
81
|`nameOverride`| Kubernetes objects will be named as `<release-name>-nameOverride`| Undefined, default naming is `<release-name>-<chart-name>`|
82
82
|`fullnameOverride`| Kubernetes objects will be named as `fullnameOverride`| Undefined, default naming is `<release-name>-<chart-name>`|
83
83
|`solace.redundancy`|`false` will create a single-node non-HA deployment; `true` will create an HA deployment with Primary, Backup and Monitor nodes |`false`|
84
+
|`solace.podDisruptionBudgetForHA`|`true` will set up a [Pod disruption budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) for the PubSub+ broker in HA deployment, `false` does not set up a pod disruption budget. HA deployment with Primary, Backup and Monitor nodes requires a minimum of 2 nodes to reach a quorum, the pod disruption budget is defaulted to `2` minimum nodes when enabled. |`false`|
84
85
|`solace.size`| Event broker simple vertical scaling by number of client connections. **Ignored** if `solace.systemScaling` is set. Options: `dev` (requires minimum resources but no guaranteed performance), `prod100`, `prod1k`, `prod10k`, `prod100k`, `prod200k`. |`prod100`|
85
86
|`solace.systemScaling.*`| Event broker fine-grained vertical scaling definition. If defined, all sub-settings must be provided and these settings will **override**`solace.size`. For scaling documentation, look for "system scaling" at [docs.solace.com](https://docs.solace.com/Search.htm?q=system%20scaling). Use the [online calculator](https://docs.solace.com/Assistance-Tools/Resource-Calculator/pubsubplus-resource-calculator.html) to determine CPU, Memory and Storage requirements for "Container (messaging)" type. </br> `maxConnections`: max supported number of client connections </br> `maxQueueMessages`: max number of queue messages, in millions of messages </br> `maxSpoolUsage`: max Spool Usage, in MB. Also ensure adequate storage.size parameter, use the calculator </br> `cpu`: CPUs in cores </br> `memory`: host Virtual Memory, in MiB | Undefined |
86
87
|`solace.podModifierEnabled`| Enables modifying (reducing) CPU and memory resources for Monitoring nodes in an HA deployment. Also requires the ["solace-pod-modifier" Kubernetes admission plugin](https://github.com/SolaceProducts/pubsubplus-kubernetes-quickstart/blob/master/solace-pod-modifier-admission-plugin/README.md#how-to-use) deployed to work. | Undefined, meaning not enabled. |
0 commit comments