Redis operator
A golang based redis operator that will make/oversee Redis standalone/cluster/replication/sentinel mode setup on top of the Kubernetes.
A Golang-based Redis operator that will make/oversee Redis standalone, cluster, replication, and sentinel mode setup on top of Kubernetes. It can create Redis setups with best practices on Cloud as well as the bare metal environment. Also, it provides an in-built monitoring capability using redis-exporter. The project is written primarily in Go, distributed under the Apache License 2.0 license, first published in 2020. It has gained significant community traction with 1,387 stars and 369 forks on GitHub. Key topics include: crd-controller, golang, hacktoberfest, hacktoberfest-accepted, helm.
A Golang-based Redis operator that will make/oversee Redis standalone, cluster, replication, and sentinel mode setup on top of Kubernetes. It can create Redis setups with best practices on Cloud as well as the bare metal environment. Also, it provides an in-built monitoring capability using redis-exporter.
For documentation, please refer to https://redis-operator.opstree.dev/
Organizations that are using Redis Operator to manage their Redis workload can be found here. If your organization is also using Redis Operator, please feel free to add by creating a pull request
This operator only supports versions of Redis >=6.
Architecture
<div align="center"> <img src="./static/redis-operator-architecture-v0.25.0.png"> </div>Purpose
There are multiple problems that people face while setting up Redis setup on Kubernetes, especially cluster type setup. The purpose of creating this operator is to provide an easy and production-ready interface for Redis setup that includes best-practices, security controls, monitoring, and management.
Supported Features
Here are the features which are supported by this operator:
- Redis standalone, cluster, replication, and sentinel mode setup
- Redis cluster failover and recovery
- Inbuilt monitoring with redis exporter
- Password and password-less setup of Redis
- TLS support for additional security layer
- IPv4 and IPv6 support for Redis setup
- Detailed monitoring Grafana dashboard
Check the Installation to deploy your first cluster with operator.
Image Compatibility
The operator supports Redis versions >=6.x. However, it is strongly recommended to use the latest stable version to ensure you have the latest security fixes and bug patches from upstream.
Container Images:
- Redis:
quay.io/opstree/redis - Sentinel:
quay.io/opstree/redis-sentinel - Exporter:
quay.io/opstree/redis-exporter
Monitoring with Prometheus
To monitor Redis performance we will be using Prometheus. In any case, extra Prometheus configuration will not be required because we will be using the Prometheus service discovery pattern. For that we already have set these annotations:
yamlannotations: redis.opstreelabs.in: "true" prometheus.io/scrape: "true" prometheus.io/port: "9121"
In addition to the annotations you have the possibility to deploy a ServiceMonitor for each of the Redis installations (configurable via Helm values file).
Contribution
Please see our CONTRIBUTING.md for details.
Release History
Please see our Release History for details.
Contact Information
This project is managed by OpsTree Solutions. For any queries or suggestions, you can reach out to us at opensource@opstree.com.
Join our Slack Channel: #redis-operator.
Contributors
Showing top 12 contributors by commit count.
