Install on Kubernetes with Helm Chart

This guide describes how to deploy Dragonfly on a Kubernetes cluster using Helm (See Install Helm).

Prerequisites

  • A Kubernetes cluster (see Kind or Minikube if you want to experiment locally).
  • Select the Dragonfly version:
    • For the latest version, set: VERSION=v1.20.0
    • Choose a version from here

Install a standalone master

Run this command:

helm upgrade --install dragonfly oci://ghcr.io/dragonflydb/dragonfly/helm/dragonfly --version $VERSION

Install a standalone master with snapshot taken every minute

  1. Add the following to the myvals.yaml values file (create a new file if it doesn’t exist):
  1. storage:
  2. enabled: true
  3. requests: 128Mi # Set as desired
  4. extraArgs:
  5. - --dbfilename=dump.rdb
  6. - --snapshot_cron=* * * * * # cron format
  7. podSecurityContext:
  8. fsGroup: 2000
  9. securityContext:
  10. capabilities:
  11. drop:
  12. - ALL
  13. readOnlyRootFilesystem: true
  14. runAsNonRoot: true
  15. runAsUser: 1000
  1. Run this command: helm upgrade -f myvals.yaml --install dragonfly oci://ghcr.io/dragonflydb/dragonfly/helm/dragonfly --version $VERSION

Integrate with Kube-Prometheus Monitoring

If you have Kube-Prometheus installed in your cluster, you set it to monitor your Dragonfly deployment by enabling the serviceMonitor and prometheusRule in your values file. For example:

  1. serviceMonitor:
  2. enabled: true
  3. prometheusRule:
  4. enabled: true
  5. spec:
  6. - alert: DragonflyMissing
  7. expr: absent(dragonfly_uptime_in_seconds) == 1
  8. for: 0m
  9. labels:
  10. severity: critical
  11. annotations:
  12. summary: Dragonfly is missing
  13. description: "Dragonfly is missing"

More Customization

For more customization please see the Dragonfly Chart