Skip to content

Redis

Redis is an open source in-memory remote database that is commonly used as a distributed cache or as a message broker for building scalable and highly available applications. More information on Redis Sentinel.


What Will You Do

In this exercise,

  • You will deploy Redis on a managed Kubernetes cluster with Sentinel enabled for monitoring nodes and handling failover.
  • You will use Bitnami's Helm chart for Redis-Sentinel

Assumptions

You have already provisioned or imported one or more Kubernetes clusters using the Controller


Step 1: Download and Prepare Helm Chart

We will be using the latest, stable Redis Helm chart maintained by Bitnami. This Helm chart will allow you to deploy Redis for a production configuration i.e. a cluster with four (4) nodes ensuring that data is persisted in all the nodes using replication.

  • We will tweak the parameters in the "values-production.yaml" file and provide this as an override for the Helm chart based workload.
  • We will set the "number of slave nodes" and "enable Sentinel" to ensure high-availability. If the master node fails, Sentinel will start a fail over process, promote a slave to master and reconfigure the rest of the nodes to read from the new master.

Download the "values-production.yaml"

curl -Lo values-production.yaml https://raw.githubusercontent.com/helm/charts/master/stable/redis/values-production.yaml

Edit the downloaded "values-production.yaml" file and ensure that the following parameters are configured.

## Cluster settings
cluster:
  enabled: true
  slaveCount: 3
sentinel:
  enabled: true

Download the Redis Helm chart from Bitnami's Helm repo. If you have the helm client, you can use it to download the chart. In our example, we are using the helm chart "redis-10.2.1.tgz".

Add the bitnami as a repo to your Helm client

helm repo add bitnami https://charts.bitnami.com/bitnami 

To fetch the redis chart from the bitnami repo

helm fetch bitnami/redis 

Step 2: Create Workload

Create a new Helm based workload in the controller and select the namespace you would like to deploy this to.

Create Redis Workload


Step 3: Configure Workload

Upload the Helm chart and the production-values.yaml file you created in Step 1.

Configure Redis Workload


Step 4: Deploy Workload

Select the clusters where you would like to deploy the workload and publish it. It should take a few minutes for workload to become operational.

Deploy Redis Workload

Click on Debug to view the Redis Sentinel pods. You should see something like the screenshot below. You should see four (4) pods: one master and three slaves.

Deploy Redis Workload


Recap

Congratulations! You have successfully deployed Redis with Sentinel on your managed Kubernetes cluster.