Create Active-Active database (REAADB)
Prerequisites
To create an Active-Active database, make sure you've completed all the following steps and have gathered the information listed below each step.
-
Configure the admission controller and ValidatingWebhook.
Note:These are installed and enabled by default on clusters created via the OpenShift OperatorHub. -
Create two or more RedisEnterpriseCluster (REC) custom resources with enough memory resources.
- Name of each REC (
<rec-name>
) - Namespace for each REC (
<rec-namespace>
)
- Name of each REC (
-
Configure the REC
ingressOrRoutes
field and create DNS records.- REC API hostname (
api-<rec-name>-<rec-namespace>.<subdomain>
) - Database hostname suffix (
-db-<rec-name>-<rec-namespace>.<subdomain>
)
- REC API hostname (
-
Prepare participating clusters
- RERC name (
<rerc-name
>) - RERC secret name (
redis-enterprise-<rerc-name>
)
- RERC name (
For a list of example values used throughout this article, see the Example values section.
Create RedisEnterpriseRemoteCluster
resources
-
Create a
RedisEnterpriseRemoteCluster
(RERC) custom resource file for each participating Redis Enterprise cluster (REC).Below are examples of RERC resources for two participating clusters. Substitute your own values to create your own resource.
Example RERC (
rerc-ohare
) for the REC namedrec-chicago
in the namespacens-illinois
:apiVersion: app.redislabs.com/v1alpha1 kind: RedisEnterpriseRemoteCluster metadata: name: rerc-ohare spec: recName: rec-chicago recNamespace: ns-illinois apiFqdnUrl: api-rec-chicago-ns-illinois.example.com dbFqdnSuffix: -db-rec-chicago-ns-illinois.example.com secretName: redis-enterprise-rerc-ohare
Example RERC (
rerc-raegan
) for the REC namedrec-arlington
in the namespacens-virginia
:apiVersion: app.redislabs.com/v1alpha1 kind: RedisEnterpriseRemoteCluster metadata: name: rerc-reagan spec: recName: rec-arlington recNamespace: ns-virginia apiFqdnUrl: test-example-api-rec-arlington-ns-virginia.example.com dbFqdnSuffix: -example-cluster-rec-arlington-ns-virginia.example.com secretName: redis-enterprise-rerc-reagan
For more details on RERC fields, see the RERC API reference.
-
Create a Redis Enterprise remote cluster from each RERC custom resource file.
kubectl create -f <rerc-file>
-
Check the status of your RERC. If
STATUS
isActive
andSPEC STATUS
isValid
, then your configurations are correct.kubectl get rerc <rerc-name>
The output should look similar to:
kubectl get rerc rerc-ohare NAME STATUS SPEC STATUS LOCAL rerc-ohare Active Valid true
In case of errors, review the RERC custom resource events and the Redis Enterprise operator logs.
Create RedisEnterpriseActiveActiveDatabase
resource
-
Create a
RedisEnterpriseActiveActiveDatabase
(REAADB) custom resource file meeting the naming requirements and listing the names of the RERC custom resources created in the last step.Naming requirements:
- less than 63 characters
- contains only lowercase letters, numbers, or hyphens
- starts with a letter
- ends with a letter or digit
Example REAADB named
reaadb-boeing
linked to the REC namedrec-chicago
with two participating clusters and a global database configuration with shard count set to 3:apiVersion: app.redislabs.com/v1alpha1 kind: RedisEnterpriseActiveActiveDatabase metadata: name: reaadb-boeing spec: globalConfigurations: databaseSecretName: <my-secret> memorySize: 200MB shardCount: 3 participatingClusters: - name: rerc-ohare - name: rerc-reagan
Note:Sharding is disabled on Active-Active databases created with ashardCount
of 1. Sharding cannot be enabled after database creation.For more details on RERC fields, see the RERC API reference.
-
Create a Redis Enterprise Active-Active database from the REAADB custom resource file.
kubectl create -f <reaadb-file>
-
Check the status of your RERC. If
STATUS
isActive
andSPEC STATUS
isValid
, your configurations are correct.kubectl get reaadb <reaadb-name>
The output should look similar to:
kubectl get reaadb reaadb-boeing NAME STATUS SPEC STATUS LINKED REDBS REPLICATION STATUS reaadb-boeing active Valid up
In case of errors, review the REAADB custom resource events and the Redis Enterprise operator logs.
Example values
This article uses the following example values:
Example cluster 1
- REC name:
rec-chicago
- REC namespace:
ns-illinois
- RERC name:
rerc-ohare
- RERC secret name:
redis-enterprise-rerc-ohare
- API FQDN:
api-rec-chicago-ns-illinois.example.com
- DB FQDN suffix:
-db-rec-chicago-ns-illinois.example.com
Example cluster 2
- REC name:
rec-arlington
- REC namespace:
ns-virginia
- RERC name:
rerc-raegan
- RERC secret name:
redis-enterprise-rerc-reagan
- API FQDN:
api-rec-arlington-ns-virginia.example.com
- DB FQDN suffix:
-db-rec-arlington-ns-virginia.example.com