Skip to content

Commit 5a628b4

Browse files
K8s: modules (#2071)
* rough draft * add upgrade considerations * changes from SME meeting
1 parent dd9d1d2 commit 5a628b4

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
Title: Configure modules
3+
alwaysopen: false
4+
categories:
5+
- docs
6+
- operate
7+
- kubernetes
8+
description: Deploy Redis Enterprise databases with modules using the Redis Enterprise operator for Kubernetes.
9+
linkTitle: Configure modules
10+
weight: 15
11+
---
12+
13+
Redis Enterprise modules extend Redis functionality with additional data types, commands, and capabilities. The Redis Enterprise operator supports deploying databases with modules through the `RedisEnterpriseDatabase` (REDB) and `RedisEnterpriseActiveActiveDatabase` (REAADB) custom resources.
14+
15+
## Prerequisites
16+
17+
Before you begin, verify that you have:
18+
19+
- [Redis Enterprise operator deployed]({{< relref "/operate/kubernetes/deployment/quick-start" >}}) in your Kubernetes cluster
20+
- [Redis Enterprise Cluster (REC)]({{< relref "/operate/kubernetes/re-clusters" >}}) running and in a healthy state
21+
- Modules uploaded to the Redis Enterprise cluster (see [Check available modules](#check-available-modules))
22+
23+
## Available modules
24+
25+
Redis Enterprise includes several built-in modules:
26+
27+
| Module | Name | Description |
28+
|--------|------|-------------|
29+
| **[RediSearch]({{< relref "/develop/interact/search-and-query" >}})** | `search` | Full-text search and secondary indexing |
30+
| **[RedisJSON]({{< relref "/develop/data-types/json" >}})** | `ReJSON` | JSON data type support |
31+
| **[RedisTimeSeries]({{< relref "/develop/data-types/timeseries" >}})** | `timeseries` | Time series data structures |
32+
| **[RedisBloom]({{< relref "/develop/data-types/probabilistic" >}})** | `bf` | Probabilistic data structures (Bloom filters, etc.) |
33+
34+
### Check available modules
35+
36+
Before configuring databases with modules, check which modules are available in your cluster:
37+
38+
```bash
39+
kubectl get rec <cluster-name> -o jsonpath='{.status.modules}' | jq
40+
```
41+
42+
This command shows the modules installed in the cluster along with their available versions.
43+
44+
{{< note >}}
45+
Use the `NAME` field instead of the `DISPLAY_NAME` field when configuring databases with modules.
46+
{{< /note >}}
47+
48+
## Install additional modules
49+
50+
If you need to install additional modules or specific versions, upload them using the Redis Enterprise API. See [Upload module v2]({{< relref "/operate/rs/references/rest-api/requests/modules/#post-module-v2" >}}) for more information.
51+
52+
## Module configuration
53+
54+
Each module in the [`modulesList`]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_database_api#specmoduleslist" >}}) supports the following fields:
55+
56+
- **name** (required): The module name (for example, "search", "ReJSON")
57+
- **version** (optional): Specific module version. For Active-Active databases, if specified for one participating cluster, it must be specified for all participating clusters. If omitted, modules will auto-update.
58+
- **config** (optional): Module-specific configuration parameters
59+
60+
For detailed module configuration options and parameters, see [Redis modules]({{< relref "/develop/reference/modules" >}}).
61+
62+
## Upgrade considerations
63+
64+
When upgrading Redis Enterprise clusters or the operator with modules, follow these guidelines:
65+
66+
#### Pre-upgrade planning
67+
68+
- **Check module compatibility**: Verify that your current module versions are compatible with the target Redis Enterprise version. Check each module's [`min_redis_version`](https://redis.io/docs/latest/operate/rs/references/rest-api/objects/module/) requirement.
69+
- **Review module dependencies**: Some modules may have specific version requirements or dependencies
70+
- **Document current configurations**: Record all module versions and configurations before upgrading
71+
- **Test in non-production**: Always test module upgrades in a development or staging environment first
72+
73+
#### Module version management during upgrades
74+
75+
- **Upload required modules**: Ensure all necessary module versions are uploaded to the cluster before upgrading
76+
- **Version consistency**: For Active-Active databases, ensure module versions are consistent across all participating clusters. If you specify a version for one cluster, specify the same version for all clusters. Omit versions to allow auto-updates.
77+
- **Compatibility requirements**: Consult the Redis Enterprise documentation for module compatibility matrices and verify each module's [`min_redis_version`](https://redis.io/docs/latest/operate/rs/references/rest-api/objects/module/) requirement
78+
79+
#### Upgrade sequence
80+
81+
1. **Upload new module versions** (if required) to the cluster before upgrading Redis Enterprise
82+
2. **Upgrade the Redis Enterprise cluster** following standard upgrade procedures
83+
3. **Verify module functionality** after the cluster upgrade completes
84+
4. **Update database configurations** if new module versions require configuration changes
85+
86+
#### Post-upgrade verification
87+
88+
- **Check module status**: Verify all modules are loaded correctly: `kubectl get rec <cluster-name> -o jsonpath='{.status.modules}'`
89+
- **Test module functionality**: Validate that module-specific commands and features work as expected
90+
- **Monitor performance**: Watch for any performance changes after the upgrade
91+
- **Update documentation**: Record the new module versions and any configuration changes
92+
93+
For detailed upgrade procedures, see [Upgrade Redis Enterprise clusters]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster" >}}).
94+
95+
## Related information
96+
97+
- [Database controller]({{< relref "/operate/kubernetes/re-databases/db-controller" >}}) - Learn how to create and manage Redis Enterprise databases
98+
- [Active-Active databases]({{< relref "/operate/kubernetes/active-active" >}}) - Set up globally distributed Active-Active databases
99+
- [Database connectivity]({{< relref "/operate/kubernetes/networking/database-connectivity" >}}) - Connect applications to your Redis Enterprise databases
100+
- [REDB API reference]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_database_api" >}}) - Complete API specification for REDB resources
101+
- [REAADB API reference]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_active_active_database_api" >}}) - API reference for Active-Active databases
102+
- [Redis modules documentation](https://redis.io/docs/latest/develop/reference/modules/) - Official Redis modules documentation

0 commit comments

Comments
 (0)