Skip to content

Quickstart to launch a Solace PubSub+ Software Message Broker in Kubernetes

License

Notifications You must be signed in to change notification settings

spalaka/pubsubplus-kubernetes-quickstart

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

Install a Solace PubSub+ Software Event Broker onto a Kubernetes cluster

The Solace PubSub+ Platform's software event broker efficiently streams event-driven information between applications, IoT devices and user interfaces running in the cloud, on-premises, and hybrid environments using open APIs and protocols like AMQP, JMS, MQTT, REST and WebSocket. It can be installed into a variety of public and private clouds, PaaS, and on-premises environments, and brokers in multiple locations can be linked together in an event mesh to dynamically share events across the distributed enterprise.

Overview

This document provides a quick getting started guide to install a software event broker in various configurations onto a Kubernetes cluster. The recommended software event broker version is 9.4 or later.

Detailed documentation is provided in the Solace PubSub+ Software Event Broker on Kubernetes Documentation.

This quick start is intended mainly for development and demo purposes. Consult the Deployment Considerations section of the Documentation when planning your deployment.

This document is applicable to any platform supporting Kubernetes, with specific hints on how to set up a simple MiniKube deployment on a Linux-based machine. To view examples of other Kubernetes platforms see:

How to deploy the Solace PubSub+ Software Event Broker onto Kubernetes

Solace PubSub+ Software Event Broker can be deployed in either a three-node High-Availability (HA) group or as a single-node standalone deployment. For simple test environments that need only to validate application functionality, a single instance will suffice. Note that in production, or any environment where message loss cannot be tolerated, an HA deployment is required.

We recommend using the Helm tool for convenience. An alternative method using generated templates is also provided.

In this quick start we go through the steps to set up a PubSub+ Software Event Broker using Solace PubSub+ Helm charts.

There are three Helm chart variants available with default small-size configurations:

  1. pubsubplus-dev - minimum footprint PubSub+ Software Event Broker for Developers (standalone)
  2. pubsubplus - PubSub+ Software Event Broker standalone, supporting 100 connections
  3. pubsubplus-ha - PubSub+ Software Event Broker HA, supporting 100 connections

For other PubSub+ Software Event Broker configurations or sizes, refer to the PubSub+ Software Event Broker Helm Chart Reference.

1. Get a Kubernetes environment

Follow your Kubernetes provider's instructions (other options available here). Ensure you meet minimum CPU, Memory and Storage requirements for the targeted PubSub+ Software Event Broker configuration size.

Note: If using MiniKube, use minikube start with specifying the options --memory and --cpu to assign adequate resources to the MiniKube VM. The recommended memory is 1GB plus the minimum requirements of your event broker.

Also have the kubectl tool installed locally.

Check to ensure your Kubernetes environment is ready:

# This shall return worker nodes listed and ready
kubectl get nodes

2. Install and configure Helm

Follow the Helm Installation notes of your target release for your platform. Note that Helm is transitioning from v2 to v3. Many deployments still use v2. The event broker can be deployed using either version, however concurrent use of v2 and v3 from the same command-line environment is not supported.

On Linux a simple option to set up the latest stable release is to run:

(Click on the arrow to open instructions for Helm v2 or v3)

Instructions for Helm v2 setup

curl -sSL https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash

Deploy Tiller, Helm's in-cluster operator:

# This enables getting started on most platforms by granting Tiller cluster-admin privileges
kubectl -n kube-system create serviceaccount tiller
kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
helm init --wait --service-account=tiller --upgrade # this may take some time

Warning: more restricted Tiller privileges are recommended in a production environment.

Instructions for Helm v3 setup

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash

Helm is configured properly if the command helm version returns no error.

3. Install the Solace PubSub+ Software Event Broker with default configuration

  • Add the Solace Helm charts to your local Helm repo:
  helm repo add solacecharts https://solaceproducts.github.io/pubsubplus-kubernetes-quickstart/helm-charts

(Click on the arrow to open instructions for Helm v2 or v3)

Instructions using Helm v2

a) Create a Solace PubSub+ Software Event Broker minimum deployment for development purposes using pubsubplus-dev. It requires a minimum of 1 CPU and 2 GB of memory be available to the event broker pod.

# Deploy PubSub+ Software Event Broker Standard edition, minimum footprint developer version
helm install --name my-release solacecharts/pubsubplus-dev

b) Create a Solace PubSub+ standalone deployment, supporting 100 connections scaling using pubsubplus. A minimum of 2 CPUs and 2 GB of memory must be available to the event broker pod.

# Deploy PubSub+ Software Event Broker Standard edition, standalone
helm install --name my-release solacecharts/pubsubplus

c) Create a Solace PubSub+ HA deployment, supporting 100 connections scaling using pubsubplus-ha. The minimum resource requirements are 2 CPU and 2 GB of memory available to each of the three event broker pods.

# Deploy PubSub+ Software Event Broker Standard edition, HA
helm install --name my-release solacecharts/pubsubplus-ha

Instructions using Helm v3

a) Create a Solace PubSub+ Software Event Broker minimum deployment for development purposes using pubsubplus-dev. It requires a minimum of 1 CPU and 2 GB of memory available to the event broker pod.

# Deploy PubSub+ Software Event Broker Standard edition, minimum footprint developer version
helm install my-release solacecharts/pubsubplus-dev

b) Create a Solace PubSub+ standalone deployment, supporting 100 connections scaling using pubsubplus. A minimum of 2 CPUs and 4 GB of memory must be available to the event broker pod.

# Deploy PubSub+ Software Event Broker Standard edition, standalone
helm install my-release solacecharts/pubsubplus

c) Create a Solace PubSub+ HA deployment, supporting 100 connections scaling using pubsubplus-ha. The minimum resource requirements are 2 CPU and 4 GB of memory available to each of the three event broker pods.

# Deploy PubSub+ Software Event Broker Standard edition, HA
helm install my-release solacecharts/pubsubplus-ha

The above options will start the deployment and write related information and notes to the screen.

Note: When using MiniKube, there is no integrated Load Balancer, which is the default service type. For a workaround, execute minikube service my-release-pubsubplus-dev to expose the services. Services will be accessible directly using the NodePort instead of direct Port access, for which the mapping can be obtained from kubectl describe service my-release-pubsubplus-dev.

Wait for the deployment to complete following the information printed on the console.

Refer to the detailed PubSub+ Kubernetes documentation for:

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

See the list of contributors who participated in this project.

License

This project is licensed under the Apache License, Version 2.0. - See the LICENSE file for details.

Resources

For more information about Solace technology in general please visit these resources:

About

Quickstart to launch a Solace PubSub+ Software Message Broker in Kubernetes

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 84.2%
  • HTML 15.8%