Redis - in-memory DB and cache

 External access

By default external access to the Redis port isn't available. This is easily changed by applying the following YAML to your cluster with kubectl apply -f redis-service.yaml (or whatever you call the file containing the contents below):

apiVersion: v1
kind: Service
metadata:
  name: redis
spec:
  type: LoadBalancer
  ports:
    - port: 6379
      targetPort: 6379
      protocol: TCP
  selector:
    app: redis

This will open up http://YOURCLUSTERID.k8s.civo.com:6379 to the whole world. You should lock this down in the firewall automatically created in Civo for your Kubernetes cluster. Locking down the firewall will only affect access from OUTSIDE of your Kubernetes cluster, access from your applications within Kubernetes will not be affected.

Usage instructions

You can use this application from within your cluster by just using the hostname redis and the password above this message. For example, to connect to Redis inside your cluster to test it or look at its data, you could do something like this:

$ kubectl run tmp-shell --generator=run-pod/v1 --rm -i --tty \
  --image alpine -- /bin/sh
/ # apk update
/ # apk add redis
/ # redis-cli -h redis -a YOUR_PASSWORD_HERE
redis:6379> 

When you quit the shell the pod for this temporary Alpine container will be deleted.