Redis with StorageOS
Redis is a popular networked, in-memory, key-value data store with optional durability to disk.
Before you start, ensure you have StorageOS installed and ready on a Kubernetes cluster. See our guide on how to install StorageOS on Kubernetes for more information
Deploying Redis on Kubernetes
- You can find the latest files in the StorageOS example deployment repostiory
git clone https://github.com/storageos/deploy.git storageos
kind: StatefulSet metadata: name: redis spec: selector: matchLabels: app: redis env: prod serviceName: redis replicas: 1 ... spec: serviceAccountName: redis ... volumeMounts: - name: data mountPath: /bitnami/redis/data ... volumeClaimTemplates: - metadata: name: data labels: env: prod spec: accessModes: ["ReadWriteOnce"] storageClassName: "fast" # StorageOS storageClass resources: requests: storage: 5Gi
This excerpt is from the StatefulSet definition. This file contains the VolumeClaim template that will dynamically provision storage, using the StorageOS storage class. Dynamic provisioning occurs as a volumeMount has been declared with the same name as a Volume Claim.
Move into the Redis examples folder and create the objects
cd storageos kubectl create -f ./k8s/examples/redis
Confirm Redis is up and running.
$ kubectl get pods -w -l app=redis NAME READY STATUS RESTARTS AGE redis-0 1/1 Running 0 1m
- Connect to the Redis client pod and connect to the Redis server through the
$ kubectl exec -it redis-0 -- redis-cli -a password Warning: Using a password with '-a' option on the command line interface may not be safe. 127.0.0.1:6379> CONFIG GET maxmemory 1) "maxmemory" 2) "0"
If you need custom startup options, you can edit the ConfigMap file (15-redis-configmap.yaml) with your desired Redis configuration settings.