Skip to content

Commit 8edc6f7

Browse files
add upgrade considerations
1 parent ad500c3 commit 8edc6f7

File tree

1 file changed

+52
-112
lines changed

1 file changed

+52
-112
lines changed

content/operate/kubernetes/re-databases/modules.md

Lines changed: 52 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
2-
Title: Redis modules on Kubernetes
2+
Title: Configure modules
33
alwaysopen: false
44
categories:
55
- docs
66
- operate
77
- kubernetes
88
description: Deploy Redis Enterprise databases with modules using the Redis Enterprise operator for Kubernetes.
9-
linkTitle: Redis modules
9+
linkTitle: Configure modules
1010
weight: 15
1111
---
1212

@@ -31,7 +31,7 @@ Redis Enterprise includes several built-in modules:
3131
- **RedisGraph** (`graph`) - Graph database capabilities
3232
- **RedisGears** (`rg`) - Programmable data processing engine
3333

34-
## Check available modules
34+
### Check available modules
3535

3636
Before configuring databases with modules, check which modules are available in your cluster:
3737

@@ -66,151 +66,98 @@ If you need to install additional modules or specific versions, upload them usin
6666
https://localhost:9443/v2/modules
6767
```
6868

69-
## Configure databases with modules
69+
## Module configuration
7070

71-
### Basic database with modules
71+
#### Module parameters
7272

73-
The following example shows a `RedisEnterpriseDatabase` with modules:
73+
Each module in the [`modulesList`]({{< relref "/operate/kubernetes/reference/api/redis_enterprise_database_api#specmoduleslist" >}}) supports the following fields:
7474

75-
```yaml
76-
apiVersion: app.redislabs.com/v1alpha1
77-
kind: RedisEnterpriseDatabase
78-
metadata:
79-
name: search-db
80-
labels:
81-
app: redis-enterprise
82-
spec:
83-
redisEnterpriseCluster:
84-
name: rec
85-
memorySize: 1GB
86-
shardCount: 1
87-
replication: false
88-
89-
# Configure modules
90-
modulesList:
91-
- name: search
92-
config: "MAXSEARCHRESULTS 10000 MAXAGGREGATERESULTS 10000"
93-
- name: ReJSON
94-
```
75+
- **name** (required): The module name (for example, "search", "ReJSON")
76+
- **version** (optional for REDB, required for REAADB): Specific module version
77+
- **config** (optional): Module-specific configuration parameters
9578

96-
### Database with multiple modules
79+
#### Common module configurations
9780

98-
The following example shows a database configured with multiple modules:
81+
##### RediSearch
9982

10083
```yaml
101-
apiVersion: app.redislabs.com/v1alpha1
102-
kind: RedisEnterpriseDatabase
103-
metadata:
104-
name: multi-module-db
105-
labels:
106-
app: redis-enterprise
107-
spec:
108-
redisEnterpriseCluster:
109-
name: rec
110-
memorySize: 2GB
111-
shardCount: 2
112-
replication: true
113-
114-
modulesList:
115-
- name: search
116-
config: "MAXSEARCHRESULTS 50000"
117-
- name: ReJSON
118-
- name: timeseries
119-
config: "RETENTION_POLICY 86400000"
120-
- name: bf
84+
modulesList:
85+
- name: search
86+
config: "MAXSEARCHRESULTS 10000 MAXAGGREGATERESULTS 5000 TIMEOUT 500"
12187
```
12288
123-
### Active-Active database with modules
89+
##### RedisTimeSeries
12490
125-
For Active-Active databases, you must specify modules with explicit versions:
91+
```yaml
92+
modulesList:
93+
- name: timeseries
94+
config: "RETENTION_POLICY 86400000 MAX_SAMPLE_PER_CHUNK 360"
95+
```
96+
97+
##### RedisBloom
12698
12799
```yaml
128-
apiVersion: app.redislabs.com/v1alpha1
129-
kind: RedisEnterpriseActiveActiveDatabase
130-
metadata:
131-
name: aa-search-db
132-
labels:
133-
app: redis-enterprise
134-
spec:
135-
participatingClusters:
136-
- name: cluster-east
137-
- name: cluster-west
138-
139-
redisEnterpriseDatabase:
140-
memorySize: 1GB
141-
shardCount: 1
142-
replication: true
143-
144-
modulesList:
145-
- name: search
146-
version: "2.8.4"
147-
config: "MAXSEARCHRESULTS 10000"
148-
- name: ReJSON
149-
version: "2.6.6"
100+
modulesList:
101+
- name: bf
102+
config: "ERROR_RATE 0.01 INITIAL_SIZE 1000"
150103
```
151104
152-
## Module configuration
105+
## Upgrade considerations
153106
154-
### Module parameters
107+
When upgrading Redis Enterprise clusters or the operator with modules, follow these guidelines:
155108
156-
Each module in the `modulesList` supports the following fields:
109+
#### Pre-upgrade planning
157110
158-
- **name** (required): The module name (for example, "search", "ReJSON")
159-
- **version** (optional for REDB, required for REAADB): Specific module version
160-
- **config** (optional): Module-specific configuration parameters
111+
- **Check module compatibility**: Verify that your current module versions are compatible with the target Redis Enterprise version
112+
- **Review module dependencies**: Some modules may have specific version requirements or dependencies
113+
- **Document current configurations**: Record all module versions and configurations before upgrading
114+
- **Test in non-production**: Always test module upgrades in a development or staging environment first
161115
162-
### Common module configurations
116+
#### Module version management during upgrades
163117
164-
#### RediSearch
118+
- **Upload required modules**: Ensure all necessary module versions are uploaded to the cluster before upgrading
119+
- **Version pinning**: For Active-Active databases, explicitly specify module versions to prevent automatic updates
120+
- **Compatibility matrices**: Consult the Redis Enterprise documentation for module compatibility matrices
165121
166-
```yaml
167-
- name: search
168-
config: "MAXSEARCHRESULTS 10000 MAXAGGREGATERESULTS 5000 TIMEOUT 500"
169-
```
122+
#### Upgrade sequence
170123
171-
#### RedisTimeSeries
124+
1. **Upload new module versions** (if required) to the cluster before upgrading Redis Enterprise
125+
2. **Upgrade the Redis Enterprise cluster** following standard upgrade procedures
126+
3. **Verify module functionality** after the cluster upgrade completes
127+
4. **Update database configurations** if new module versions require configuration changes
172128
173-
```yaml
174-
- name: timeseries
175-
config: "RETENTION_POLICY 86400000 MAX_SAMPLE_PER_CHUNK 360"
176-
```
129+
#### Post-upgrade verification
177130
178-
#### RedisBloom
131+
- **Check module status**: Verify all modules are loaded correctly: `kubectl get rec <cluster-name> -o jsonpath='{.status.modules}'`
132+
- **Test module functionality**: Validate that module-specific commands and features work as expected
133+
- **Monitor performance**: Watch for any performance changes after the upgrade
134+
- **Update documentation**: Record the new module versions and any configuration changes
179135

180-
```yaml
181-
- name: bf
182-
config: "ERROR_RATE 0.01 INITIAL_SIZE 1000"
183-
```
136+
For detailed upgrade procedures, see [Upgrade Redis Enterprise clusters]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster" >}}).
184137

185138
## Best practices
186139

187-
### Module version management
140+
#### Module version management
188141

189142
- For production environments, specify explicit module versions in Active-Active databases
190143
- Use the cluster's available modules list to ensure compatibility
191144
- Test module upgrades in non-production environments first
192145

193-
### Resource planning
146+
#### Resource planning
194147

195148
- Modules consume additional memory and CPU resources
196149
- Plan cluster resources accordingly when using multiple modules
197150
- Monitor module-specific metrics and performance
198151

199-
### Configuration management
152+
#### Configuration management
200153

201154
- Use module configuration parameters to optimize performance
202155
- Document module configurations for consistency across environments
203156
- Consider module-specific backup and recovery requirements
204157

205-
### Upgrade considerations
206-
207-
- Ensure compatible module versions before cluster upgrades
208-
- Upload required module versions before upgrading the cluster
209-
- Review module compatibility matrices in Redis Enterprise documentation
210-
211158
## Troubleshooting
212159

213-
### Common issues
160+
#### Common issues
214161

215162
1. **Module not available error:**
216163
- Check if the module is installed: `kubectl get rec <cluster-name> -o jsonpath='{.status.modules}'`
@@ -224,7 +171,7 @@ Each module in the `modulesList` supports the following fields:
224171
- Validate module configuration parameters
225172
- Check Redis Enterprise logs for specific error messages
226173

227-
### Debugging commands
174+
#### Debugging commands
228175

229176
```bash
230177
# Check cluster status and available modules
@@ -240,13 +187,6 @@ kubectl logs -l name=redis-enterprise-operator
240187
kubectl logs <cluster-pod-name>
241188
```
242189

243-
## Examples
244-
245-
See the `deploy/examples/` directory for additional configuration examples:
246-
247-
- Basic database: `deploy/examples/v1alpha1/redb.yaml`
248-
- Active-Active database: `deploy/examples/v1alpha1/reaadb.yaml`
249-
250190
## Related information
251191

252192
- [Database controller]({{< relref "/operate/kubernetes/re-databases/db-controller" >}}) - Learn how to create and manage Redis Enterprise databases

0 commit comments

Comments
 (0)