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/ 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. For documentation, please refer to Organizations that are using Redis Operator to manage their Redis workload can be found [here](./USED_BY_ORGANIZATIONS.md). If your organization is also using Redis Operator, please feel free to add by creating a [pull request](https://github.com/OT-CONTAINER-KIT/redis-operator/pulls) This operator only supports versions of Redis `>=6`. ## Architecture ## 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](https://redis-operator.opstree.dev/docs/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: ```yaml annotations: 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). #### Grafana Dashboard Integration The operator supports a detailed Grafana dashboard (ID 16056) for visualizing Redis metrics collected by Prometheus. For manual import, download the JSON from [Grafana.com](https://grafana.com/grafana/dashboards/16056-redis-dashboard-opstree/). For automated deployment of this dashboard as a ConfigMap (auto-imported via the kube-prometheus-stack sidecar), consider the community Helm chart: [redis-grafana-dashboard](https://github.com/Emrin/redis-grafana-dashboard) (also available on [Artifact Hub](https://artifacthub.io/packages/helm/redis-grafana-dashboard/redis-grafana-dashboard)). ## Contribution Please see our [CONTRIBUTING.md](./CONTRIBUTING.md) for details. ## Release History Please see our [Release History](https://redis-operator.opstree.dev/docs/release-history/) for details. ## Contact Information This project is managed by [OpsTree Solutions](http://opstree.com). For any queries or suggestions, you can reach out to us at [[email protected]](mailto:[email protected]). Join our Slack Channel: [#redis-operator](https://join.slack.com/t/opstree/shared_invite/zt-3o8jp35x-UGMU2Cy0WSBk3Lbzqa2wVw).
No open issues yet, or sync has not completed.