From 5c9c5d397cf899226606dae8a973b70a5d31e8ce Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Fri, 9 Jan 2026 15:13:52 -0600 Subject: [PATCH 01/10] page structure and intro --- .../networking/cluster-aware-clients.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 content/operate/kubernetes/networking/cluster-aware-clients.md diff --git a/content/operate/kubernetes/networking/cluster-aware-clients.md b/content/operate/kubernetes/networking/cluster-aware-clients.md new file mode 100644 index 0000000000..93a447fe14 --- /dev/null +++ b/content/operate/kubernetes/networking/cluster-aware-clients.md @@ -0,0 +1,27 @@ +--- +Title: Enable cluster-aware clients (OSS Cluster API) +alwaysopen: false +categories: +- docs +- operate +- kubernetes +description: Improve performance by enabling the OSS Cluster API for your Redis Enterprise database. +linkTitle: Cluster-aware clients +weight: 99 +--- + +The OSS Cluster API improves performance by allowing cluster-aware Redis clients to discover database topology and route requests directly. This feature supports clients running on the same Kubernetes cluster (internal) and clients outside the Kubernetes cluster (external). + +# Enable OSS Cluster API + +## Edit REC (RedisEnterpriseCluster) {#edit-rec} + +## Edit REDB (RedisEnterpriseDatabase) {#edit-redb} + +# Connect clients + +## Connect external clients + +## Connect internal clients + + From 948080c4a973dc2ad9035b7ee82779bfea8cecaa Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Fri, 9 Jan 2026 15:15:21 -0600 Subject: [PATCH 02/10] update RS page --- content/operate/rs/clusters/optimize/oss-cluster-api.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/operate/rs/clusters/optimize/oss-cluster-api.md b/content/operate/rs/clusters/optimize/oss-cluster-api.md index 612568a4d2..7bf9ac0981 100644 --- a/content/operate/rs/clusters/optimize/oss-cluster-api.md +++ b/content/operate/rs/clusters/optimize/oss-cluster-api.md @@ -6,16 +6,13 @@ categories: - operate - rs - rc +- kubernetes description: Use the Redis OSS Cluster API to improve performance and keep applications current with cluster topology changes. linktitle: "Redis OSS Cluster API" weight: $weight --- {{< embed-md "oss-cluster-api-intro.md" >}} -{{< warning >}} -Kubernetes limitation: OSS Cluster API can only be used by clients running within the same Kubernetes cluster as the Redis Enterprise pods. External clients cannot use OSS Cluster API due to pod IP address accessibility limitations. -{{< /warning >}} - You can use the Redis OSS Cluster API along with other Redis Enterprise Software high availability to get high performance with low latency and let applications stay current with cluster topology changes, including add node, remove node, and node failover. @@ -23,3 +20,5 @@ and let applications stay current with cluster topology changes, including add n For more about working with the OSS Cluster API in Redis Enterprise Software, see [Enable OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api" >}}). To learn how to enable OSS Cluster API in Redis Cloud, see [Clustering Redis databases]({{< relref "/operate/rc/databases/configuration/clustering#cluster-api" >}}). + +To enable OSS Cluster API in Kubernetes, see [Enable OSS Cluster API]({{< relref "/operate/kubernetes/networking/cluster-aware-clients#enable-oss-cluster-api" >}}). From d43359db1b2de0655d31a0a9d3181d63e11730b8 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Tue, 13 Jan 2026 11:38:26 -0600 Subject: [PATCH 03/10] cluster-aware-clients page --- .../networking/cluster-aware-clients.md | 70 ++++++++++++++++--- 1 file changed, 62 insertions(+), 8 deletions(-) diff --git a/content/operate/kubernetes/networking/cluster-aware-clients.md b/content/operate/kubernetes/networking/cluster-aware-clients.md index 93a447fe14..55cdbc7b05 100644 --- a/content/operate/kubernetes/networking/cluster-aware-clients.md +++ b/content/operate/kubernetes/networking/cluster-aware-clients.md @@ -5,23 +5,77 @@ categories: - docs - operate - kubernetes -description: Improve performance by enabling the OSS Cluster API for your Redis Enterprise database. +description: Improve performance with cluster-aware clients by enabling the OSS Cluster API for your Redis Enterprise for Kubernetes database. linkTitle: Cluster-aware clients weight: 99 --- -The OSS Cluster API improves performance by allowing cluster-aware Redis clients to discover database topology and route requests directly. This feature supports clients running on the same Kubernetes cluster (internal) and clients outside the Kubernetes cluster (external). +The OSS Cluster API improves performance by allowing cluster-aware Redis clients to discover database topology and route requests directly. This feature supports cluster-awareclients running on the same Kubernetes cluster (internal) and cluster-aware clients outside the Kubernetes cluster (external). -# Enable OSS Cluster API +## Prerequisites -## Edit REC (RedisEnterpriseCluster) {#edit-rec} +- RedisEnterpriseCluster (REC) running version 8.0.10-tbd or later. +- Proxy policy is set to `all-master-shards` or `all-nodes`. +- Modules used by the database (if any) a bundled modules. +- The database is not an Active-Active database. -## Edit REDB (RedisEnterpriseDatabase) {#edit-redb} +## Enable OSS Cluster API -# Connect clients +To enable cluster-aware clients, edit the REC and REDB custom resources with the following fields. -## Connect external clients +### Edit REC (RedisEnterpriseCluster) {#edit-rec} -## Connect internal clients +1. Edit the RedisEnterpriseCluster (REC) custom resource to add the `ossClusterSettings` section to the `spec` section. +Set `externalAccessType` to `LoadBalancer` and add any `serviceAnnotations` as required by your service provider. +```yaml +ossClusterSettings: + externalAccessType: LoadBalancer + loadBalancer: + serviceAnnotations: +``` + +2. If you are using internal clients (within the Kubernetes cluster), you can add them to the `podCIDRs` field to improve performance. Clients from these ranges are routed directly to the Redis Enterprise pods, without going through the load balancer. + +The following is an example `podCIDRs` field using example values; replace with your own unique CIDRs. + +```yaml + podCIDRs: + - "192.0.2.0/24" + - "198.51.100.0/24" + - "203.0.113.0/24" +``` + +### Edit REDB (RedisEnterpriseDatabase) {#edit-redb} + +3. Edit the REDB custom resource to add the following fields and values to the `spec` section. + +```yaml + ossCluster: true + + ossClusterSettings: + enableExternalAccess: true +``` + +## Connect clients + +Use the `kubectl get svc` command to view the services created by the OSS Cluster API. It should look similar to this example: + +```sh +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +admission ClusterIP 10.0.1.10 443/TCP 3h28m +oss-cluster ClusterIP 10.0.1.20 11712/TCP 3h6m +oss-cluster-headless ClusterIP None 11712/TCP 3h6m +oss-cluster-load-balancer LoadBalancer 10.0.1.30 203.0.113.10 11712:30245/TCP 3h6m +rec ClusterIP 10.0.1.40 9443/TCP,8001/TCP 3h27m +rec-cluster LoadBalancer 10.0.1.50 203.0.113.20 11712:32559/TCP 3h6m +rec-1-lb LoadBalancer 10.0.1.60 203.0.113.30 11712:31976/TCP 3h6m +rec-2-lb LoadBalancer 10.0.1.70 203.0.113.40 11712:31972/TCP 3h6m +rec-oss ClusterIP None 8070/TCP 3h27m +rec-ui ClusterIP 10.0.1.80 8443/TCP 3h27m +``` + +To connect an external client (outside the Kubernetes cluster), use the `EXTERNAL-IP` address for the `oss-cluster-load-balancer` service. + +To connect an internal client (listed in the `podCIDRs` field), use the `CLUSTER-IP` address for the `oss-cluster` service. From 171b84b6bafb00371395690d07f15a8d298f1ad7 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Tue, 13 Jan 2026 11:42:43 -0600 Subject: [PATCH 04/10] update limitations --- content/operate/kubernetes/networking/_index.md | 9 ++++++--- content/operate/rs/clusters/optimize/oss-cluster-api.md | 2 +- .../operate/rs/databases/configure/oss-cluster-api.md | 6 +++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/content/operate/kubernetes/networking/_index.md b/content/operate/kubernetes/networking/_index.md index 5b6090fb18..ba91e6c3f3 100644 --- a/content/operate/kubernetes/networking/_index.md +++ b/content/operate/kubernetes/networking/_index.md @@ -39,11 +39,14 @@ Versions 6.4.2 or later of Redis Enterprise for Kubernetes include a feature for This feature only supports automatic Ingress creation for Active-Active databases created and managed with the RedisEnterpriseActiveActiveDatabase (REAADB) custom resource. Use with the standard Redis Enterprise database (REDB) is not currently supported. -## OSS Cluster API limitations +## OSS Cluster API support -When using [OSS Cluster API]({{< relref "/operate/rs/databases/configure/oss-cluster-api" >}}), clients must specify the IP addresses of Redis instances to perform operations. Since Pod IP addresses are internal to the Kubernetes cluster and not publicly accessible, **OSS Cluster API can only be used by clients running on pods within the same Kubernetes cluster as the Redis Enterprise pods.** Using OSS Cluster API from outside the Kubernetes cluster is not tested and currently not supported. +[OSS Cluster API]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}) is supported for both internal and external clients: -For applications that need to access Redis databases from outside the Kubernetes cluster, use standard Redis Enterprise connectivity methods with the external routing options described above (Ingress controllers, load balancers, or OpenShift routes). These methods do not support OSS Cluster API but provide reliable external access to your Redis databases. +- **Internal clients** running on pods within the same Kubernetes cluster can connect directly to Redis Enterprise pods using pod IPs. +- **External clients** outside the Kubernetes cluster can connect through a LoadBalancer service when `enableExternalAccess: true` is configured in the database specification. + +See [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}) for configuration details. ## REC domain name diff --git a/content/operate/rs/clusters/optimize/oss-cluster-api.md b/content/operate/rs/clusters/optimize/oss-cluster-api.md index 7bf9ac0981..fea0d8b8b9 100644 --- a/content/operate/rs/clusters/optimize/oss-cluster-api.md +++ b/content/operate/rs/clusters/optimize/oss-cluster-api.md @@ -21,4 +21,4 @@ For more about working with the OSS Cluster API in Redis Enterprise Software, se To learn how to enable OSS Cluster API in Redis Cloud, see [Clustering Redis databases]({{< relref "/operate/rc/databases/configuration/clustering#cluster-api" >}}). -To enable OSS Cluster API in Kubernetes, see [Enable OSS Cluster API]({{< relref "/operate/kubernetes/networking/cluster-aware-clients#enable-oss-cluster-api" >}}). +To enable OSS Cluster API in Kubernetes, see [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}). diff --git a/content/operate/rs/databases/configure/oss-cluster-api.md b/content/operate/rs/databases/configure/oss-cluster-api.md index 49d36b51ed..47f5e8e5e1 100644 --- a/content/operate/rs/databases/configure/oss-cluster-api.md +++ b/content/operate/rs/databases/configure/oss-cluster-api.md @@ -28,9 +28,9 @@ In addition, the database must _not_: The OSS Cluster API setting applies to individual databases instead of the entire cluster. -{{< warning >}} -Kubernetes limitation: OSS Cluster API can only be used by clients running within the same Kubernetes cluster as the Redis Enterprise pods. External clients cannot use OSS Cluster API due to pod IP address accessibility limitations. -{{< /warning >}} +{{< note >}} +For Kubernetes deployments, see [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}). +{{< /note >}} ## Enable OSS Cluster API support From 2b63567979078cdbbfb22645807f5ebbc6c0f54b Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:55:50 -0600 Subject: [PATCH 05/10] Update content/operate/kubernetes/networking/cluster-aware-clients.md Co-authored-by: David Dougherty --- content/operate/kubernetes/networking/cluster-aware-clients.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/networking/cluster-aware-clients.md b/content/operate/kubernetes/networking/cluster-aware-clients.md index 55cdbc7b05..461a366966 100644 --- a/content/operate/kubernetes/networking/cluster-aware-clients.md +++ b/content/operate/kubernetes/networking/cluster-aware-clients.md @@ -10,7 +10,7 @@ linkTitle: Cluster-aware clients weight: 99 --- -The OSS Cluster API improves performance by allowing cluster-aware Redis clients to discover database topology and route requests directly. This feature supports cluster-awareclients running on the same Kubernetes cluster (internal) and cluster-aware clients outside the Kubernetes cluster (external). +The OSS Cluster API improves performance by allowing cluster-aware Redis clients to discover database topology and route requests directly. This feature supports cluster-aware clients running on the same Kubernetes cluster (internal) and cluster-aware clients outside the Kubernetes cluster (external). ## Prerequisites From 4894577a6afe4eebfd1c419e40dc81b735ae8ea2 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Tue, 13 Jan 2026 15:56:07 -0600 Subject: [PATCH 06/10] Update content/operate/kubernetes/networking/cluster-aware-clients.md Co-authored-by: David Dougherty --- content/operate/kubernetes/networking/cluster-aware-clients.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/networking/cluster-aware-clients.md b/content/operate/kubernetes/networking/cluster-aware-clients.md index 461a366966..32491084a9 100644 --- a/content/operate/kubernetes/networking/cluster-aware-clients.md +++ b/content/operate/kubernetes/networking/cluster-aware-clients.md @@ -16,7 +16,7 @@ The OSS Cluster API improves performance by allowing cluster-aware Redis clients - RedisEnterpriseCluster (REC) running version 8.0.10-tbd or later. - Proxy policy is set to `all-master-shards` or `all-nodes`. -- Modules used by the database (if any) a bundled modules. +- Modules used by the database (if any) are bundled modules. - The database is not an Active-Active database. ## Enable OSS Cluster API From 1016778d4917ca74e7a920d061a3678ab6f41c0f Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 15 Jan 2026 13:49:05 -0600 Subject: [PATCH 07/10] add vs specify clarification --- content/operate/kubernetes/networking/cluster-aware-clients.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/networking/cluster-aware-clients.md b/content/operate/kubernetes/networking/cluster-aware-clients.md index 32491084a9..3bd3e5f7df 100644 --- a/content/operate/kubernetes/networking/cluster-aware-clients.md +++ b/content/operate/kubernetes/networking/cluster-aware-clients.md @@ -36,7 +36,7 @@ ossClusterSettings: serviceAnnotations: ``` -2. If you are using internal clients (within the Kubernetes cluster), you can add them to the `podCIDRs` field to improve performance. Clients from these ranges are routed directly to the Redis Enterprise pods, without going through the load balancer. +2. If you are using internal clients (within the Kubernetes cluster), you can specify their IP ranges in the `podCIDRs` field to improve performance. Clients from these ranges are routed directly to the Redis Enterprise pods, without going through the load balancer. The following is an example `podCIDRs` field using example values; replace with your own unique CIDRs. From dbd06cf737eb515dcc72bc4abc351830d7ace4fa Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 15 Jan 2026 13:52:51 -0600 Subject: [PATCH 08/10] specify LB services are created --- content/operate/kubernetes/networking/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/networking/_index.md b/content/operate/kubernetes/networking/_index.md index ba91e6c3f3..bdcb6329bc 100644 --- a/content/operate/kubernetes/networking/_index.md +++ b/content/operate/kubernetes/networking/_index.md @@ -44,7 +44,7 @@ This feature only supports automatic Ingress creation for Active-Active database [OSS Cluster API]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}) is supported for both internal and external clients: - **Internal clients** running on pods within the same Kubernetes cluster can connect directly to Redis Enterprise pods using pod IPs. -- **External clients** outside the Kubernetes cluster can connect through a LoadBalancer service when `enableExternalAccess: true` is configured in the database specification. +- **External clients** outside the Kubernetes cluster can connect through LoadBalancer services when `enableExternalAccess: true` is configured in the database specification. This creates a separate LoadBalancer service for each Redis Enterprise pod, which may increase operational costs. See [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}) for configuration details. From d3e0f3228125449b88260bf58fb0bbde42eea01c Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 15 Jan 2026 13:58:29 -0600 Subject: [PATCH 09/10] note about LB being resource heavy --- content/operate/kubernetes/networking/_index.md | 2 +- .../operate/kubernetes/networking/cluster-aware-clients.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/content/operate/kubernetes/networking/_index.md b/content/operate/kubernetes/networking/_index.md index bdcb6329bc..af7ecbfcf7 100644 --- a/content/operate/kubernetes/networking/_index.md +++ b/content/operate/kubernetes/networking/_index.md @@ -44,7 +44,7 @@ This feature only supports automatic Ingress creation for Active-Active database [OSS Cluster API]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}) is supported for both internal and external clients: - **Internal clients** running on pods within the same Kubernetes cluster can connect directly to Redis Enterprise pods using pod IPs. -- **External clients** outside the Kubernetes cluster can connect through LoadBalancer services when `enableExternalAccess: true` is configured in the database specification. This creates a separate LoadBalancer service for each Redis Enterprise pod, which may increase operational costs. +- **External clients** outside the Kubernetes cluster can connect through LoadBalancer services when `enableExternalAccess: true` is configured in the database specification. This creates a separate LoadBalancer service for each Redis Enterprise pod. Note that LoadBalancers are resources that can significantly increase operational costs. See [Enable cluster-aware clients (OSS Cluster API)]({{< relref "/operate/kubernetes/networking/cluster-aware-clients" >}}) for configuration details. diff --git a/content/operate/kubernetes/networking/cluster-aware-clients.md b/content/operate/kubernetes/networking/cluster-aware-clients.md index 3bd3e5f7df..1935a88cb4 100644 --- a/content/operate/kubernetes/networking/cluster-aware-clients.md +++ b/content/operate/kubernetes/networking/cluster-aware-clients.md @@ -12,6 +12,10 @@ weight: 99 The OSS Cluster API improves performance by allowing cluster-aware Redis clients to discover database topology and route requests directly. This feature supports cluster-aware clients running on the same Kubernetes cluster (internal) and cluster-aware clients outside the Kubernetes cluster (external). +{{< note >}} +Enabling external access for OSS Cluster API creates a separate LoadBalancer service for each Redis Enterprise pod in addition to the LoadBalancer service for the cluster endpoint. LoadBalancers are resources that can significantly increase operational costs; plan your infrastructure budget accordingly. +{{< /note >}} + ## Prerequisites - RedisEnterpriseCluster (REC) running version 8.0.10-tbd or later. @@ -51,6 +55,8 @@ The following is an example `podCIDRs` field using example values; replace with 3. Edit the REDB custom resource to add the following fields and values to the `spec` section. +Set `enableExternalAccess: true` to allow external clients to connect. This provisions a LoadBalancer service for each Redis Enterprise pod running a node, which increases infrastructure costs. + ```yaml ossCluster: true From cb142e5ace3ceb2ed79d85866f7b409766f3910e Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 15 Jan 2026 14:00:46 -0600 Subject: [PATCH 10/10] add limitations --- .../operate/kubernetes/networking/cluster-aware-clients.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/operate/kubernetes/networking/cluster-aware-clients.md b/content/operate/kubernetes/networking/cluster-aware-clients.md index 1935a88cb4..e4361fef7b 100644 --- a/content/operate/kubernetes/networking/cluster-aware-clients.md +++ b/content/operate/kubernetes/networking/cluster-aware-clients.md @@ -23,6 +23,10 @@ Enabling external access for OSS Cluster API creates a separate LoadBalancer ser - Modules used by the database (if any) are bundled modules. - The database is not an Active-Active database. +## Limitations + +- OSS Cluster databases with external access must be created and managed using the RedisEnterpriseDatabase (REDB) custom resource. You cannot create or configure these databases using the Redis Enterprise REST API directly. + ## Enable OSS Cluster API To enable cluster-aware clients, edit the REC and REDB custom resources with the following fields.