Skip to content

Commit 5c369ef

Browse files
edits
1 parent 2443841 commit 5c369ef

File tree

5 files changed

+116
-512
lines changed

5 files changed

+116
-512
lines changed

content/operate/kubernetes/reference/yaml-examples/active-active.md

Lines changed: 23 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,11 @@ Active-Active databases span multiple Redis Enterprise clusters and provide:
2222

2323
## Prerequisites
2424

25-
Before creating Active-Active databases:
25+
Before creating Active-Active databases, see the [Active-Active prerequisites]({{< relref "/operate/kubernetes/active-active/create-reaadb#prerequisites" >}}) for detailed requirements including:
2626

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
3130

3231
## Architecture
3332

@@ -39,16 +38,16 @@ This example shows a two-cluster Active-Active setup:
3938

4039
Each participating cluster needs a RedisEnterpriseRemoteCluster (RERC) resource pointing to the other clusters.
4140

42-
{{<embed-md "k8s/rerc.md">}}
41+
{{<embed-yaml "k8s/rerc.md">}}
4342

4443
### RERC configuration
4544

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
51-
- **spec.secretName**: Secret containing authentication credentials
45+
- `metadata.name`: Unique name for this remote cluster reference
46+
- `spec.recName`: Name of the remote REC
47+
- `spec.recNamespace`: Namespace of the remote REC
48+
- `spec.apiFqdnUrl`: API endpoint URL for the remote cluster
49+
- `spec.dbFqdnSuffix`: Database hostname suffix for the remote cluster
50+
- `spec.secretName`: Secret containing authentication credentials
5251

5352
### Customization for your environment
5453

@@ -91,13 +90,13 @@ spec:
9190
9291
The RedisEnterpriseActiveActiveDatabase (REAADB) resource defines the Active-Active database.
9392
94-
{{<embed-md "k8s/reaadb.md">}}
93+
{{<embed-yaml "k8s/reaadb.md">}}
9594
9695
### REAADB configuration
9796
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
101100

102101
### Advanced configuration
103102

@@ -144,169 +143,24 @@ spec:
144143

145144
## Applying the configuration
146145

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:
148147

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:
197-
198-
```bash
199-
# Check REAADB status
200-
kubectl get reaadb
201-
kubectl describe reaadb reaadb
202-
203-
# Verify local databases are created
204-
kubectl get redb
205-
```
148+
1. [Prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters" >}})
149+
2. [Create RERC resources]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-rerc" >}})
150+
3. [Create REAADB resource]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-reaadb" >}})
151+
4. [Verify database creation]({{< relref "/operate/kubernetes/active-active/create-reaadb#verify-creation" >}})
206152

207153
## Verification
208154

209-
### Check database status
210-
211-
```bash
212-
# View Active-Active database details
213-
kubectl get reaadb reaadb -o yaml
214-
215-
# Check local database instances
216-
kubectl get redb --all-namespaces
217-
218-
# Verify database connectivity
219-
kubectl get svc | grep reaadb
220-
```
221-
222-
### Test replication
223-
224-
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" >}}).
245156

246157
## Troubleshooting
247158

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" >}}).
280160

281161
## Security considerations
282162

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" >}}).
310164

311165
## Next steps
312166

0 commit comments

Comments
 (0)