Redis operator for Kubernetes with HAProxy support
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Vladimir Smagin 5e8130bc98 add logging to deletion pdb 1ヶ月前
build run 7ヶ月前
cmd/manager run 7ヶ月前
deploy add pdb to demo instance 1ヶ月前
pkg add logging to deletion pdb 1ヶ月前
vendor no more latest tag, use jenkins to build 3ヶ月前
version add PodDisruptionBudge resources 1ヶ月前
.gitignore run 7ヶ月前
Dockerfile move to ubuntu image 1ヶ月前
Jenkinsfile no more latest tag, use jenkins to build 3ヶ月前
README.md add additional condition for sentinel pdb 1ヶ月前
VERSION add PodDisruptionBudge resources 1ヶ月前
go.mod no more latest tag, use jenkins to build 3ヶ月前
go.sum no more latest tag, use jenkins to build 3ヶ月前
tools.go run 7ヶ月前

README.md

Redis operator for Kubernetes

Redis operator runs Sentinel and Redis, makes Redis high available with HAProxy.

Build sources

Prebuilt images

You can find images here https://hub.docker.com/r/iam21h/redis-operator

Deploy operator

Namespace-scoped installation

kubectl -n operators -f deploy/service_account.yaml
kubectl -n operators -f deploy/role.yaml
kubectl -n operators -f deploy/role_binding.yaml
kubectl -n operators -f deploy/operator.yaml

Edit operator.yaml to set WATCH_NAMESPACE, may be you want set it to namespace of pod:

env:
  - name: WATCH_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace

Cluster-scoped installation

kubectl -f deploy/clusterrole.yaml
kubectl -f deploy/clusterrole_binding.yaml
kubectl -n operators -f deploy/service_account.yaml
kubectl -n operators -f deploy/operator.yaml

Edit clusterrole_binding.yaml, set namespace for service account.

Your first Redis deployment

This resource can help you run your first Redis instance

apiVersion: blindage.org/v1alpha1
kind: Redis
metadata:
  name: my-redis
spec:
  useHAProxy: true
  haproxyReplicas: 1
  sentinelReplicas: 3
  redisReplicas: 3
  quorum: 2
  haproxyTimeoutServer: 30
  haproxyTimeoutClient: 30
  haproxyBackendCheckInterval: 1
  # set size if you want make persistent volume
  persistentVolumeSize: 1Gi
  persistentVolumeClass: "gluster"
  persistentVolumePurge: true
  pdbRedis:
    maxUnavailable: 1
  pdbSentinel:
    minAvailable: 2

Remember rule: pdbSentinel.minAvailable > (sentinelReplicas / 2) > pdbSentinel.maxUnavailable. This made to save quorum.

Open file pkg/apis/blindage/v1alpha1/redis_types.go to know more about options.


Copyright by Vladimir Smagin (21h) 2019
http://blindage.org email: 21h@blindage.org
Project page: https://git.blindage.org/21h/redis-operator