Create Active-Active database (REAADB)

Note:
This feature is supported for general availability in releases 6.4.2-6 and later. Some of these features were available as a preview in 6.4.2-4 and 6.4.2-5. Please upgrade to 6.4.2-6 for the full set of general availability features and bug fixes.

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.

  1. Configure the admission controller and ValidatingWebhook.

    Note:
    These are installed and enabled by default on clusters created via the OpenShift OperatorHub.

  2. Create two or more RedisEnterpriseCluster (REC) custom resources with enough memory resources.

    • Name of each REC (<rec-name>)
    • Namespace for each REC (<rec-namespace>)
  3. 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>)
  4. Prepare participating clusters

    • RERC name (<rerc-name>)
    • RERC secret name (redis-enterprise-<rerc-name>)

For a list of example values used throughout this article, see the Example values section.

Create RedisEnterpriseRemoteCluster resources

  1. 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 named rec-chicago in the namespace ns-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 named rec-arlington in the namespace ns-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.

  2. Create a Redis Enterprise remote cluster from each RERC custom resource file.

    kubectl create -f <rerc-file>
    
  3. Check the status of your RERC. If STATUS is Active and SPEC STATUS is Valid, 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

  1. 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 named rec-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 a shardCount of 1. Sharding cannot be enabled after database creation.

    For more details on RERC fields, see the RERC API reference.

  2. Create a Redis Enterprise Active-Active database from the REAADB custom resource file.

    kubectl create -f <reaadb-file>
    
  3. Check the status of your RERC. If STATUS is Active and SPEC STATUS is Valid, 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
RATE THIS PAGE
Back to top ↑