|
| 1 | +--- |
| 2 | +Title: Active-Active databases |
| 3 | +alwaysopen: false |
| 4 | +categories: |
| 5 | +- docs |
| 6 | +- operate |
| 7 | +- kubernetes |
| 8 | +description: Content related to Active-Active Redis Enterprise databases for Kubernetes. |
| 9 | +hideListLinks: true |
| 10 | +linkTitle: Active-Active databases |
| 11 | +weight: 40 |
| 12 | +url: '/operate/kubernetes/7.8.4/active-active/' |
| 13 | +--- |
| 14 | + |
| 15 | +On Kubernetes, Redis Enterprise [Active-Active]({{< relref "/operate/rs/databases/active-active/" >}}) databases provide read and write access to the same dataset from different Kubernetes clusters. |
| 16 | + |
| 17 | +## Active-Active setup methods |
| 18 | + |
| 19 | +There are two methods for creating an Active-Active database with Redis Enterprise for Kubernetes: |
| 20 | + |
| 21 | +- The `RedisEnterpriseActiveActiveDatabase` (REAADB) custom resource is available for versions 6.4.2 and later. |
| 22 | +- The `crdb-cli` method is available for versions 6.4.2 or earlier. |
| 23 | + |
| 24 | + |
| 25 | +We recommend creating new Active-Active databases using the RedisEnterpriseActiveActiveDatabase (REAADB) custom resource. This allows you to manage your Active-Active database with the operator and ensures you have the latest features and functionality. |
| 26 | + |
| 27 | +### Active-Active controller method |
| 28 | + |
| 29 | +Versions 6.4.2-6 or later fully support the Active-Active controller. 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. |
| 30 | + |
| 31 | +This setup method includes the following steps: |
| 32 | + |
| 33 | +1. Gather REC credentials and [prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters.md" >}}). |
| 34 | +2. Create [`RedisEnterpriseRemoteCluster` (RERC)]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-rerc" >}}) resources. |
| 35 | +3. Create [`RedisEnterpriseActiveActiveDatabase` (REAADB)]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-reaadb" >}}) resource. |
| 36 | + |
| 37 | +### `crdb-cli` method |
| 38 | + |
| 39 | +For versions 6.4.2 or earlier, this Active-Active setup method includes the following steps: |
| 40 | + |
| 41 | +1. Install and configure an ingress. |
| 42 | +2. Gather configuration details. |
| 43 | +3. Add the `ActiveActive` field to the REC spec. |
| 44 | +4. Create the database with the `crdb-cli` tool. |
| 45 | + |
| 46 | +## Redis Enterprise Active-Active controller for Kubernetes |
| 47 | + |
| 48 | +{{<note>}}These features are supported for general availability in releases 6.4.2-6 and later.{{</note>}} |
| 49 | + |
| 50 | +[Active-Active]({{< relref "/operate/rs/databases/active-active/" >}}) databases give you read-and-write access to Redis Enterprise clusters (REC) in different Kubernetes clusters or namespaces. Active-Active deployments managed by the Redis Enterprise operator require two additional custom resources: Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC). |
| 51 | + |
| 52 | +To create an Active-Active Redis Enterprise deployment for Kubernetes with these new features, first [prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters.md" >}}) then [create an Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb.md" >}}). |
| 53 | + |
| 54 | +### Preview versions |
| 55 | + |
| 56 | +If you are using a preview version of these features (operator version 6.4.2-4 or 6.4.2-5), you'll need to enable the Active-Active controller with the following steps. You need to do this only once per cluster. We recommend using the fully supported 6.4.2-6 version. |
| 57 | + |
| 58 | +1. Download the custom resource definitions (CRDs) for the most recent release (6.4.2-4) from [redis-enterprise-k8s-docs Github](https://github.com/RedisLabs/redis-enterprise-k8s-docs/tree/master/crds). |
| 59 | + |
| 60 | +1. Apply the new CRDs for the Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC) to install those controllers. |
| 61 | + |
| 62 | + ```sh |
| 63 | + kubectl apply -f crds/reaadb_crd.yaml |
| 64 | + kubectl apply -f crds/rerc_crd.yaml |
| 65 | + ``` |
| 66 | + |
| 67 | +1. Enable the Active-Active and remote cluster controllers on the operator ConfigMap. |
| 68 | + |
| 69 | + ```sh |
| 70 | + kubectl patch cm operator-environment-config --type merge --patch "{\"data\": \ |
| 71 | + {\"ACTIVE_ACTIVE_DATABASE_CONTROLLER_ENABLED\":\"true\", \ |
| 72 | + \"REMOTE_CLUSTER_CONTROLLER_ENABLED\":\"true\"}}" |
| 73 | +
|
| 74 | +
|
| 75 | +### REAADB custom resource |
| 76 | +
|
| 77 | +Redis Enterprise Active-Active database (REAADB) contains a link to the RERC for each participating cluster, and provides configuration and status to the management plane. |
| 78 | +
|
| 79 | +For a full list of fields and options, see the [REAADB API reference]({{<relref "/operate/kubernetes/reference/redis_enterprise_active_active_database_api">}}). |
| 80 | +
|
| 81 | +### RERC custom resource |
| 82 | +
|
| 83 | +Redis Enterprise remote cluster (RERC) custom resource contains configuration details for all the participating clusters. |
| 84 | +
|
| 85 | +For a full list of fields and options, see the [RERC API reference]({{<relref "/operate/kubernetes/reference/redis_enterprise_remote_cluster_api">}}). |
| 86 | +
|
| 87 | +### Limitations |
| 88 | +
|
| 89 | +* Existing Redis databases cannot be migrated to a REAADB. (DOC-3594) |
| 90 | +* Admission is not blocking REAADB with `shardCount` which exceeds license quota. (RED-96301) |
| 91 | + Workaround: Fix the problems with the REAADB and reapply. |
| 92 | +* The `<rec-name>/<rec-namespace>` value must be unique for each RERC resource. (RED-96302) |
| 93 | +* Only global database options are supported, no support for specifying configuration per location. |
| 94 | +* No support for migration from old (`crdb-cli`) Active-Active database method to new Active-Active controller. |
| 95 | +* No support for REAADB with participating clusters co-located within the same Kubernetes cluster, except for a single designated local participating cluster. |
| 96 | +
|
| 97 | +## More info |
| 98 | +
|
| 99 | +For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). |
0 commit comments