You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before creating Active-Active databases, see the [Active-Active prerequisites]({{< relref "/operate/kubernetes/active-active/create-reaadb#prerequisites" >}}) for detailed requirements including:
26
26
27
-
1.**Multiple REC clusters**: Deploy Redis Enterprise clusters in different regions/zones
28
-
2.**Network connectivity**: Clusters must be able to communicate with each other
29
-
3.**DNS configuration**: Set up ingress/routes with proper DNS records
30
-
4.**Admission controller**: Enable the ValidatingWebhook for Active-Active support
27
+
- Multiple REC clusters deployed in different regions/zones
28
+
- Network connectivity and DNS configuration
29
+
- Admission controller setup
31
30
32
31
## Architecture
33
32
@@ -39,16 +38,16 @@ This example shows a two-cluster Active-Active setup:
39
38
40
39
Each participating cluster needs a RedisEnterpriseRemoteCluster (RERC) resource pointing to the other clusters.
41
40
42
-
{{<embed-md "k8s/rerc.md">}}
41
+
{{<embed-yaml "k8s/rerc.md">}}
43
42
44
43
### RERC configuration
45
44
46
-
-**metadata.name**: Unique name for this remote cluster reference
47
-
-**spec.recName**: Name of the remote REC
48
-
-**spec.recNamespace**: Namespace of the remote REC
49
-
-**spec.apiFqdnUrl**: API endpoint URL for the remote cluster
50
-
-**spec.dbFqdnSuffix**: Database hostname suffix for the remote cluster
The RedisEnterpriseActiveActiveDatabase (REAADB) resource defines the Active-Active database.
93
92
94
-
{{<embed-md "k8s/reaadb.md">}}
93
+
{{<embed-yaml "k8s/reaadb.md">}}
95
94
96
95
### REAADB configuration
97
96
98
-
- **metadata.name**: Active-Active database name
99
-
- **spec.participatingClusters**: List of RERC names that participate in this database
100
-
- **spec.globalConfigurations**: Database settings applied to all participating clusters
97
+
- `metadata.name`: Active-Active database name
98
+
- `spec.participatingClusters`: List of RERC names that participate in this database
99
+
- `spec.globalConfigurations`: Database settings applied to all participating clusters
101
100
102
101
### Advanced configuration
103
102
@@ -144,169 +143,24 @@ spec:
144
143
145
144
## Applying the configuration
146
145
147
-
### Step 1: Prepare clusters
146
+
For detailed deployment steps, see [Create Active-Active database (REAADB)]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}). The process includes:
148
147
149
-
Ensure both clusters are deployed and accessible:
150
-
151
-
```bash
152
-
# Check cluster status on both clusters
153
-
kubectl get rec --all-namespaces
154
-
155
-
# Verify ingress/routes are configured
156
-
kubectl get ingress,routes --all-namespaces
157
-
```
158
-
159
-
### Step 2: Create RERC resources
160
-
161
-
Apply RERC resources on each cluster pointing to the other clusters:
162
-
163
-
**On Chicago cluster:**
164
-
```bash
165
-
kubectl apply -f rerc-boston.yaml
166
-
```
167
-
168
-
**On Boston cluster:**
169
-
```bash
170
-
kubectl apply -f rerc-chicago.yaml
171
-
```
172
-
173
-
### Step 3: Verify RERC status
174
-
175
-
Check that remote clusters are connected:
176
-
177
-
```bash
178
-
# Check RERC status
179
-
kubectl get rerc
180
-
kubectl describe rerc rerc-boston
181
-
182
-
# Verify connectivity
183
-
kubectl logs deployment/redis-enterprise-operator
184
-
```
185
-
186
-
### Step 4: Create Active-Active database
187
-
188
-
Apply the REAADB resource on one of the participating clusters:
189
-
190
-
```bash
191
-
kubectl apply -f active-active-database.yaml
192
-
```
193
-
194
-
### Step 5: Verify database creation
195
-
196
-
Check that the database is created on all participating clusters:
Connect to the database on different clusters and verify data replication:
225
-
226
-
```bash
227
-
# Get database connection details
228
-
kubectl get secret reaadb -o yaml
229
-
230
-
# Connect from Chicago cluster
231
-
redis-cli -h <chicago-db-endpoint> -p <port> -a <password>
232
-
SET test-key "chicago-value"
233
-
234
-
# Connect from Boston cluster
235
-
redis-cli -h <boston-db-endpoint> -p <port> -a <password>
236
-
GET test-key # Should return "chicago-value"
237
-
```
238
-
239
-
### Monitor replication lag
240
-
241
-
Use the Redis Enterprise admin console to monitor:
242
-
- Replication status between clusters
243
-
- Sync lag metrics
244
-
- Conflict resolution statistics
155
+
For verification steps and testing procedures, see [Verify Active-Active database creation]({{< relref "/operate/kubernetes/active-active/create-reaadb#verify-creation" >}}) and [Active-Active database management]({{< relref "/operate/kubernetes/active-active" >}}).
245
156
246
157
## Troubleshooting
247
158
248
-
### Common issues
249
-
250
-
**RERC connection failures**
251
-
- Verify DNS resolution for API and database endpoints
252
-
- Check network connectivity between clusters
253
-
- Validate ingress/route configurations
254
-
255
-
**Database creation fails**
256
-
- Ensure admission controller is enabled
257
-
- Check that all RERC resources are in "Active" state
258
-
- Verify sufficient resources on all participating clusters
259
-
260
-
**Replication not working**
261
-
- Check database endpoints are accessible
262
-
- Verify TLS certificates if using encrypted connections
263
-
- Monitor operator logs for replication errors
264
-
265
-
### Debug commands
266
-
267
-
```bash
268
-
# Check RERC connectivity
269
-
kubectl describe rerc <rerc-name>
270
-
271
-
# View operator logs
272
-
kubectl logs deployment/redis-enterprise-operator
273
-
274
-
# Check database events
275
-
kubectl describe reaadb <reaadb-name>
276
-
277
-
# Verify network policies
278
-
kubectl get networkpolicies
279
-
```
159
+
For troubleshooting Active-Active databases, see [Active-Active troubleshooting]({{< relref "/operate/kubernetes/troubleshooting" >}}) and [general Kubernetes troubleshooting]({{< relref "/operate/kubernetes/troubleshooting" >}}).
280
160
281
161
## Security considerations
282
162
283
-
### TLS encryption
284
-
285
-
Enable TLS for inter-cluster communication:
286
-
287
-
```yaml
288
-
spec:
289
-
globalConfigurations:
290
-
# Enable TLS for replication
291
-
tlsMode: enabled
292
-
293
-
# Specify TLS certificate secret
294
-
tlsSecretName: my-tls-secret
295
-
```
296
-
297
-
### Authentication
298
-
299
-
Secure database access with authentication:
300
-
301
-
```yaml
302
-
spec:
303
-
globalConfigurations:
304
-
# Enable database authentication
305
-
requireAuth: true
306
-
307
-
# Secret containing database password
308
-
databaseSecretName: my-auth-secret
309
-
```
163
+
For security configuration including TLS encryption and authentication, see [Active-Active security]({{< relref "/operate/kubernetes/security" >}}) and [database security]({{< relref "/operate/kubernetes/re-databases" >}}).
0 commit comments