From 34b29a3658106c5ab9b50fc697ed2cc5eddd0dc5 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 10 Oct 2024 09:16:28 -0500 Subject: [PATCH 01/33] draft --- .../operate/kubernetes/architecture/_index.md | 58 +++++++------------ .../deployment-options.md | 1 + 2 files changed, 22 insertions(+), 37 deletions(-) rename content/operate/kubernetes/{deployment => architecture}/deployment-options.md (97%) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index d7658d9b3f..1898b7a297 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -5,44 +5,28 @@ categories: - docs - operate - kubernetes -description: This section provides an overview of the architecture and considerations - for Redis Enterprise for Kubernetes. +description: Overview of the architecture and components of Redis Enterprise for Kubernetes. hideListLinks: true linkTitle: Architecture -weight: 11 +weight: 1 --- -Redis bases its Kubernetes architecture on several vital concepts. -## Layered architecture - -Kubernetes is an excellent orchestration tool, but it was not designed to deal with all the nuances associated with operating Redis Enterprise. Therefore, it can fail to react accurately to internal Redis Enterprise edge cases or failure conditions. Also, Kubernetes orchestration runs outside the Redis Cluster deployment and may fail to trigger failover events, for example, in split network scenarios. - -To overcome these issues, Redis created a layered architecture approach that splits responsibilities between operations Kubernetes does well, procedures Redis Enterprise Cluster excels at, and the processes both can orchestrate together. The figure below illustrated this layered orchestration architecture: - -{{< image filename="/images/k8s/kubernetes-overview-layered-orchestration.png" >}} - -## Operator based deployment - -Operator allows Redis to maintain a unified deployment solution across various Kubernetes environments, i.e., RedHat OpenShift, VMware Tanzu (Tanzu Kubernetes Grid, and Tanzu Kubernetes Grid Integrated Edition, formerly known as PKS), Google Kubernetes Engine (GKE), Azure Kubernetes Service (AKS), and vanilla (upstream) Kubernetes. Statefulset and anti-affinity guarantee that each Redis Enterprise node resides on a Pod that is hosted on a different VM or physical server. See this setup shown in the figure below: - -{{< image filename="/images/k8s/kubernetes-overview-unified-deployment.png" >}} - -## Network-attached persistent storage {#networkattached-persistent-storage} - -Kubernetes and cloud-native environments require that storage volumes be network-attached to the compute instances, to guarantee data durability. Otherwise, if using local storage, data may be lost in a Pod failure event. See the figure below: - -{{< image filename="/images/k8s/kubernetes-overview-network-attached-persistent-storage.png" >}} - -On the left-hand side (marked #1), Redis Enterprise uses local ephemeral storage for durability. When a Pod fails, Kubernetes launches another Pod as a replacement, but this Pod comes up with empty local ephemeral storage, and the data from the original Pod is now lost. - -On the right-hand side of the figure (marked #2), Redis Enterprise uses network-attached storage for data durability. In this case, when a Pod fails, Kubernetes launches another Pod and automatically connects it to the storage device used by the failed Pod. Redis Enterprise then instructs the Redis Enterprise database instance/s running on the newly created node to load the data from the network-attached storage, which guarantees a durable setup. - -Redis Enterprise is not only great as an in-memory database but also extremely efficient in the way it uses persistent storage, even when the user chooses to configure Redis Enterprise to write every change to the disk. Compared to a disk-based database that requires multiple interactions (in most cases) with a storage device for every read or write operation, Redis Enterprise uses a single IOPS, in most cases, for a write operation and zero IOPS for a read operation. As a result, significant performance improvements are seen in typical Kubernetes environments, as illustrated in the figures below: - -{{< image filename="/images/k8s/kubernetes-overview-performance-improvements-read.png" >}}{{< image filename="/images/k8s/kubernetes-overview-performance-improvements-write.png" >}} - -## Multiple services on each pod - -Each Pod includes multiple Redis Enterprise instances (multiple services). We found that the traditional method of deploying a Redis Enterprise database over Kubernetes, in which each Pod includes only a single Redis Enterprise instance while preserving a dedicated CPU, is notably inefficient. Redis Enterprise is exceptionally fast and in many cases can use just a fraction of the CPU resources to deliver the requested throughput. Furthermore, when running a Redis Enterprise Cluster with multiple Redis Enterprise instances across multiple Pods, the Kubernetes network, with its multiple vSwitches, can quickly become the deployment’s bottleneck. Therefore, Redis took a different approach to managing Redis Enterprise over the Kubernetes environment. Deploying multiple Redis Enterprise database instances on a single Pod allows us to better utilize the hardware resources used by the Pod such as CPU, memory, and network while keeping the same level of isolation. See the figure below: - -{{< image filename="/images/k8s/kubernetes-overview-multiple-services-per-pod.png" >}} +Redis Enterprise gives you redis's speed at scale with added durability. +Kubernetes (K8s) is flexible, scalable, and automates management while reducing overhead. Redis Enterprise for Kubernetes lets you manage your Redis clusters and databases with declarative configuration files, and lets you use the advantages of Kubernetes to manage your resources. Redis Enterprise for Kubernetes uses a custom operator and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. + +Redis Enterprise for Kubernetes provides custom resource definitions (CRDs) that allows you to to create custom resources to manage your clusters and databases. The RedisEnterpriseCluster (REC) resource creates and manages a Redis Enterprise cluster within the same namespace. The RedisEnterpriseDatabase (REDB) resource creates and manages your Redis Enterprise database. + +overview diagram + +Declarative configuration management... configuration YAML files - https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/ +Automated upgrades, creation, scaling, declare state you want and K8s manages details +where is my database ... just like RS multiple databases are hosted by a redis node, just happens to be within a pod +db diagram +Once its up, it's just RS except... +Credentials management - secrets +Storage - k8s way - network attached +Active-active +multi-namespace +flexible deployment +more information? +https://redis.io/redis-enterprise/advantages/ \ No newline at end of file diff --git a/content/operate/kubernetes/deployment/deployment-options.md b/content/operate/kubernetes/architecture/deployment-options.md similarity index 97% rename from content/operate/kubernetes/deployment/deployment-options.md rename to content/operate/kubernetes/architecture/deployment-options.md index 54ebe5b00e..a0c639a151 100644 --- a/content/operate/kubernetes/deployment/deployment-options.md +++ b/content/operate/kubernetes/architecture/deployment-options.md @@ -9,6 +9,7 @@ description: Redis Enterprise for Kubernetes allows you to deploy to multiple na This article describes flexible deployment options you can use to meet your specific needs. linkTitle: Deployment options +aliases: [ /operate/kubernetes/deployment/deployment-options/, ] weight: 12 --- You can deploy Redis Enterprise for Kubernetes in several different ways depending on your database needs. From 74c3942a50eddebfdeef0ca3010884b027b971fe Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 10 Oct 2024 12:50:01 -0500 Subject: [PATCH 02/33] remove operator.md and add images --- .../kubernetes/architecture/operator.md | 71 ------------------ static/images/k8s/k8s-arch-v4.png | Bin 0 -> 100539 bytes static/images/k8s/k8s-node-arch.png | Bin 0 -> 30575 bytes 3 files changed, 71 deletions(-) delete mode 100644 content/operate/kubernetes/architecture/operator.md create mode 100644 static/images/k8s/k8s-arch-v4.png create mode 100644 static/images/k8s/k8s-node-arch.png diff --git a/content/operate/kubernetes/architecture/operator.md b/content/operate/kubernetes/architecture/operator.md deleted file mode 100644 index 7c7d6c6902..0000000000 --- a/content/operate/kubernetes/architecture/operator.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -Title: Redis Enterprise for Kubernetes operator-based architecture -alwaysopen: false -categories: -- docs -- operate -- kubernetes -description: This section provides a description of the design of Redis Enterprise - for Kubernetes. -linkTitle: What is an operator? -weight: 30 ---- -Redis Enterprise is the fastest, most efficient way to -deploy and maintain a Redis Enterprise cluster in Kubernetes. - -## What is an operator? - -An operator is a [Kubernetes custom controller](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-controllers) which extends the native K8s API. - -Operators were developed to handle sophisticated, stateful applications -that the default K8s controllers aren’t able to handle. While stock -Kubernetes controllers—for example, -[StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)—are -ideal for deploying, maintaining and scaling simple stateless -applications, they are not equipped to handle access to stateful -resources, upgrade, resize and backup of more elaborate, clustered -applications such as databases. - -## What does an operator do? - -In abstract terms, Operators encode human operational knowledge into -software that can reliably manage an application in an extensible, -modular way and do not hinder the basic primitives that comprise the K8s -architecture. - -Redis created an operator that deploys and manages the lifecycle of a Redis Enterprise Cluster. - -The Redis Enterprise operator acts as a custom controller for the custom -resource RedisEnterpriseCluster, or ‘rec’, which is defined through K8s -CRD ([custom resource definition](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-resources)) -and deployed with a yaml file. - -The operator functions include: - -- Validating the deployed Cluster spec (for example, requiring the -deployment of an odd number of nodes) -- Implementing a reconciliation loop to monitor all the applicable -resources -- Logging events -- Enabling a simple mechanism for editing the Cluster spec - -The Redis Enterprise operator functions as the logic “glue” between the -K8s infrastructure and the Redis Enterprise Cluster. - -The operator creates the following resources: - -- Service account -- Service account role -- Service account role binding -- Secret – holds the cluster username, password, and license -- Statefulset – holds Redis Enterprise nodes -- The Services Manager deployment – exposes databases and tags nodes -- The Redis UI service -- The service that runs the REST API + Sentinel -- Pod Disruption Budget -- Optionally: a deployment for the Service Broker, including services and a PVC - -The following diagram shows the high-level architecture of the Redis -Enterprise operator: - -{{< image filename="/images/k8s/k8-high-level-architecture-diagram-of-redis-enterprise.png" >}} diff --git a/static/images/k8s/k8s-arch-v4.png b/static/images/k8s/k8s-arch-v4.png new file mode 100644 index 0000000000000000000000000000000000000000..f6bfcccbbc77fb6835fd283d3e735d0d1dd06525 GIT binary patch literal 100539 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 literal 0 HcmV?d00001 diff --git a/static/images/k8s/k8s-node-arch.png b/static/images/k8s/k8s-node-arch.png new file mode 100644 index 0000000000000000000000000000000000000000..c476cee31938f89306bbd90afda02de39e267501 GIT binary patch literal 30575 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 Date: Thu, 10 Oct 2024 15:36:11 -0500 Subject: [PATCH 03/33] operator, ns, cr, crd --- .../operate/kubernetes/architecture/_index.md | 73 +++++++++++++----- static/images/k8s/k8s-arch-v4.png | Bin 100539 -> 86422 bytes 2 files changed, 54 insertions(+), 19 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 1898b7a297..cf54b6c9da 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -11,22 +11,57 @@ linkTitle: Architecture weight: 1 --- -Redis Enterprise gives you redis's speed at scale with added durability. -Kubernetes (K8s) is flexible, scalable, and automates management while reducing overhead. Redis Enterprise for Kubernetes lets you manage your Redis clusters and databases with declarative configuration files, and lets you use the advantages of Kubernetes to manage your resources. Redis Enterprise for Kubernetes uses a custom operator and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. - -Redis Enterprise for Kubernetes provides custom resource definitions (CRDs) that allows you to to create custom resources to manage your clusters and databases. The RedisEnterpriseCluster (REC) resource creates and manages a Redis Enterprise cluster within the same namespace. The RedisEnterpriseDatabase (REDB) resource creates and manages your Redis Enterprise database. - -overview diagram - -Declarative configuration management... configuration YAML files - https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/ -Automated upgrades, creation, scaling, declare state you want and K8s manages details -where is my database ... just like RS multiple databases are hosted by a redis node, just happens to be within a pod -db diagram -Once its up, it's just RS except... -Credentials management - secrets -Storage - k8s way - network attached -Active-active -multi-namespace -flexible deployment -more information? -https://redis.io/redis-enterprise/advantages/ \ No newline at end of file +Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), along with the flexibility and ease of use Kubernetes (K8s) provides. Redis Enterprise for Kubernetes uses a custom operator and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. + +The image below illustrates the components of a single-namespace deployment. + +{{< image filename="/images/k8s/k8s-arch-v4.png" >}} + +## Operator + +An operator is a custom extension of the Kubernetes API used to manage complex, stateful processes and resources. The operator uses controllers to manage Redis Enterprise's custom resources (CR). + +## Namespace + +The Redis Enterprise operator is deployed into a namespace. Only one operator and one RedisEnterpriseCluster can reside in each namespace. Namespaces create a logical separation between resources. Several of the resources used in your deployment are limited to a namespace, while others are cluster-wide. + +Redis Enterprise for Kubernetes supports multi-namespace deployment options. Databases residing in one namespace, can be monitored and managed by an operator. + +## Custom resources + +Custom resources extend the Kubernetes API to allow Redis users to manage their databases the Kubernetes way. Custom resources are created and managed with YAML configuration files. + +This [declarative configuration method](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) lets you define a desired state for your resources, and the operator will make changes to reach that state. This simplifies installing, updating, and scaling (both horizontally and vertically). + +The operator continually monitors custom resources for changes, and acts to reconcile differences between your declared desired state and the actual state of your resources. + +## Custom resource definitions + +A cluster-wide resource called a custom resource defintion (CRD) specifies which settings are configurable via a custom resource configuration file. Any setting not defined by the CRD is not managed by the operator. Changes to these settings can be made just as they are in Redis Enterprise Software. + +Settings that are managed by the operator will be overwritten if changed by a method besides the custom resource YAML files. Be aware that changes made in the management UI will be overwritten by the operator if that setting is defined by the CRD. + +## RedisEnterpriseCluster REC + +## RedisEnterpriseDatabase REDB + +{{< image filename="/images/k8s/k8s-node-arch.png">}} + +## Active-Active databases + +### RedisEnterpriseRemoteCluster RERC + +### RedisEnterpriseActiveActiveDatabase REAADB + +## Services Rigger + +## Security + +secrets + +## Storage + +PVCs, network attached + +## Metrics + diff --git a/static/images/k8s/k8s-arch-v4.png b/static/images/k8s/k8s-arch-v4.png index f6bfcccbbc77fb6835fd283d3e735d0d1dd06525..20eab398b938ad3b4bc7880f0cdf13d6e6a51058 100644 GIT binary patch literal 86422 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 literal 100539 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 From 5d811bfe836fdb34995c38c2969da3fef54a5e0f Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 10 Oct 2024 15:37:19 -0500 Subject: [PATCH 04/33] db options relrefs --- content/operate/kubernetes/architecture/deployment-options.md | 2 +- content/operate/kubernetes/re-clusters/multi-namespace.md | 2 +- content/operate/kubernetes/re-databases/db-controller.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/operate/kubernetes/architecture/deployment-options.md b/content/operate/kubernetes/architecture/deployment-options.md index a0c639a151..e1f65bd27f 100644 --- a/content/operate/kubernetes/architecture/deployment-options.md +++ b/content/operate/kubernetes/architecture/deployment-options.md @@ -9,7 +9,7 @@ description: Redis Enterprise for Kubernetes allows you to deploy to multiple na This article describes flexible deployment options you can use to meet your specific needs. linkTitle: Deployment options -aliases: [ /operate/kubernetes/deployment/deployment-options/, ] +aliases: [ /operate/kubernetes/architecture/deployment-options/, ] weight: 12 --- You can deploy Redis Enterprise for Kubernetes in several different ways depending on your database needs. diff --git a/content/operate/kubernetes/re-clusters/multi-namespace.md b/content/operate/kubernetes/re-clusters/multi-namespace.md index 26535b4e65..67d8fb25fb 100644 --- a/content/operate/kubernetes/re-clusters/multi-namespace.md +++ b/content/operate/kubernetes/re-clusters/multi-namespace.md @@ -14,7 +14,7 @@ weight: 17 Multiple Redis Enterprise database resources (REDBs) can be associated with a single Redis Enterprise cluster resource (REC) even if they reside in different namespaces. -To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/deployment/deployment-options.md" >}}). +To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/architecture/deployment-options.md" >}}). ## Prerequisites diff --git a/content/operate/kubernetes/re-databases/db-controller.md b/content/operate/kubernetes/re-databases/db-controller.md index 88dd6605cf..487d091a37 100644 --- a/content/operate/kubernetes/re-databases/db-controller.md +++ b/content/operate/kubernetes/re-databases/db-controller.md @@ -32,7 +32,7 @@ If the database [custom resource is deleted]({{< relref "/operate/kubernetes/del Databases in multiple namespaces can be managed by the same operator. To learn more, see [Manage databases in multiple namespaces]({{}}). -To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/deployment/deployment-options.md" >}}). +To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/architecture/deployment-options.md" >}}). ## Create a database From 6c97b6fa46ab786663f1ccdebf1833b192080959 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 10 Oct 2024 16:01:06 -0500 Subject: [PATCH 05/33] edits --- .../operate/kubernetes/architecture/_index.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index cf54b6c9da..d97d71befa 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -11,35 +11,35 @@ linkTitle: Architecture weight: 1 --- -Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), along with the flexibility and ease of use Kubernetes (K8s) provides. Redis Enterprise for Kubernetes uses a custom operator and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. +Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), with the flexibility and ease of use Kubernetes (K8s) provides. Redis Enterprise for Kubernetes uses a custom operator and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. -The image below illustrates the components of a single-namespace deployment. +The image below illustrates the components of a single namespace, three node deployment. {{< image filename="/images/k8s/k8s-arch-v4.png" >}} ## Operator -An operator is a custom extension of the Kubernetes API used to manage complex, stateful processes and resources. The operator uses controllers to manage Redis Enterprise's custom resources (CR). +An operator is a custom extension of the Kubernetes API designed to manage complex, stateful processes and resources. The Redis Enterprise operator uses controllers to manage Redis Enterprise’s custom resources (CRs), ensuring that these resources are continuously monitored and maintained. ## Namespace -The Redis Enterprise operator is deployed into a namespace. Only one operator and one RedisEnterpriseCluster can reside in each namespace. Namespaces create a logical separation between resources. Several of the resources used in your deployment are limited to a namespace, while others are cluster-wide. +The Redis Enterprise operator is deployed within a namespace. Each namespace can host only one operator and one RedisEnterpriseCluster instance. Namespaces create a logical boundaries between resources, allowing organization and security. Some resources in your deployment are limited to a namespace, while others are cluster-wide. -Redis Enterprise for Kubernetes supports multi-namespace deployment options. Databases residing in one namespace, can be monitored and managed by an operator. +Redis Enterprise for Kubernetes supports multi-namespace deployments, meaning databases in multiple namespaces can be monitored by a single operator. ## Custom resources -Custom resources extend the Kubernetes API to allow Redis users to manage their databases the Kubernetes way. Custom resources are created and managed with YAML configuration files. +Custom resources (CRs) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way. Custom resources are created and managed using YAML configuration files. -This [declarative configuration method](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) lets you define a desired state for your resources, and the operator will make changes to reach that state. This simplifies installing, updating, and scaling (both horizontally and vertically). +This [declarative configuration approach](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) allows you to specify the desired state for your resources, and the operator makes the necessary changes to achieve that state. This simplifies installation, upgrades, and scaling both vertically and horizontally. -The operator continually monitors custom resources for changes, and acts to reconcile differences between your declared desired state and the actual state of your resources. +The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file and the actual state of your resources. ## Custom resource definitions -A cluster-wide resource called a custom resource defintion (CRD) specifies which settings are configurable via a custom resource configuration file. Any setting not defined by the CRD is not managed by the operator. Changes to these settings can be made just as they are in Redis Enterprise Software. +A custom resource definition (CRD) is a cluster-wide resource that specifies which settings can be configured via custom resource files. Any setting not defined by the CRD is not managed by the operator. Changes to these unmanaged settings can still be made using standard Redis Enterprise Software methods. -Settings that are managed by the operator will be overwritten if changed by a method besides the custom resource YAML files. Be aware that changes made in the management UI will be overwritten by the operator if that setting is defined by the CRD. +For settings managed by the operator, any changes made outside of the CR YAML files (e.g., through the management UI) will be overwritten by the operator. Ensure that all operator-managed settings are updated using the CR YAML files to prevent conflicts. ## RedisEnterpriseCluster REC From 916d5c09a71efe459929c21f21394a328db120b0 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 10 Oct 2024 16:24:54 -0500 Subject: [PATCH 06/33] REDB info --- content/operate/kubernetes/architecture/_index.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index d97d71befa..fff2f016c4 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -43,10 +43,20 @@ For settings managed by the operator, any changes made outside of the CR YAML fi ## RedisEnterpriseCluster REC -## RedisEnterpriseDatabase REDB +A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances (shards). A Redis cluster is created an managed by the RedisEnterpriseCluster (REC) custom resource. Changes to the REC YAML configuration prompt the operator to make changes to the cluster. {{< image filename="/images/k8s/k8s-node-arch.png">}} +The REC is required for both standard databases (REDB) and Active-Active databases (REAADB). + +## RedisEnterpriseDatabase REDB + +A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances (shards). A Redis instance is a single-threaded database process (commonly referred to as a shard). + +Redis databases are created and managed by the RedisEnterpriseDatabase (REDB)custom resource. Changes to the REDB YAML configuration file prompt the operator to make changes to the database. See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. + +A database can be managed by an operator in the same namespace, or a different namespace. See []"Flexible deployment"]({{}}) options and []"Manage databases in multiple namespaces"]({{}}) for more information. + ## Active-Active databases ### RedisEnterpriseRemoteCluster RERC @@ -63,5 +73,7 @@ secrets PVCs, network attached +## Networking + ## Metrics From ac6a501047a527d144f25d6ed56727116fb1fc40 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Thu, 10 Oct 2024 16:36:22 -0500 Subject: [PATCH 07/33] small edits --- content/operate/kubernetes/architecture/_index.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index fff2f016c4..721bab5f26 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -43,25 +43,27 @@ For settings managed by the operator, any changes made outside of the CR YAML fi ## RedisEnterpriseCluster REC -A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances (shards). A Redis cluster is created an managed by the RedisEnterpriseCluster (REC) custom resource. Changes to the REC YAML configuration prompt the operator to make changes to the cluster. +A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances (shards). {{< image filename="/images/k8s/k8s-node-arch.png">}} -The REC is required for both standard databases (REDB) and Active-Active databases (REAADB). +A Redis cluster is created an managed by the RedisEnterpriseCluster (REC) custom resource. Changes to the REC YAML configuration prompt the operator to make changes to the cluster.The REC is required for both standard databases (REDB) and Active-Active databases (REAADB). + +See the [RedisEnterpriseCluster (REC) API Reference]({{}}) for a full list of fields and settings. ## RedisEnterpriseDatabase REDB A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances (shards). A Redis instance is a single-threaded database process (commonly referred to as a shard). -Redis databases are created and managed by the RedisEnterpriseDatabase (REDB)custom resource. Changes to the REDB YAML configuration file prompt the operator to make changes to the database. See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. +Redis databases are created and managed by the RedisEnterpriseDatabase (REDB) custom resource. Changes to the REDB YAML configuration file prompt the operator to make changes to the database. See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. A database can be managed by an operator in the same namespace, or a different namespace. See []"Flexible deployment"]({{}}) options and []"Manage databases in multiple namespaces"]({{}}) for more information. ## Active-Active databases -### RedisEnterpriseRemoteCluster RERC +## RedisEnterpriseRemoteCluster RERC -### RedisEnterpriseActiveActiveDatabase REAADB +## RedisEnterpriseActiveActiveDatabase REAADB ## Services Rigger @@ -75,5 +77,8 @@ PVCs, network attached ## Networking +ingress and ingressorRoutes + ## Metrics +Promethius service \ No newline at end of file From 2d40c301c8c34f00fa46b2a42d238dc3c045d93b Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 13:58:58 -0500 Subject: [PATCH 08/33] operator --- .../operate/kubernetes/architecture/_index.md | 48 +++++++++++++++++-- .../operate/kubernetes/deployment/_index.md | 17 ------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 721bab5f26..fd6ba89b81 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -21,6 +21,18 @@ The image below illustrates the components of a single namespace, three node dep An operator is a custom extension of the Kubernetes API designed to manage complex, stateful processes and resources. The Redis Enterprise operator uses controllers to manage Redis Enterprise’s custom resources (CRs), ensuring that these resources are continuously monitored and maintained. +--->Operator pattern is a common way to extend the K8s API to work with databases....... + +The operator is a deployment that runs within a given namespace. These operator pods must run with sufficient privileges to create the Redis Enterprise cluster resources within that namespace. + +When the operator is installed, the following resources are created: + +- service account under which the operator will run +- set of roles to define the privileges necessary for the operator to perform its tasks +- set of role bindings to authorize the service account for the correct roles (see above) +- CustomResourceDefinition (CRD) for each Redis Enterprise custom resource +- the operator itself (a deployment) + ## Namespace The Redis Enterprise operator is deployed within a namespace. Each namespace can host only one operator and one RedisEnterpriseCluster instance. Namespaces create a logical boundaries between resources, allowing organization and security. Some resources in your deployment are limited to a namespace, while others are cluster-wide. @@ -57,10 +69,14 @@ A Redis Enterprise database is a logical entity that manages your entire dataset Redis databases are created and managed by the RedisEnterpriseDatabase (REDB) custom resource. Changes to the REDB YAML configuration file prompt the operator to make changes to the database. See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. -A database can be managed by an operator in the same namespace, or a different namespace. See []"Flexible deployment"]({{}}) options and []"Manage databases in multiple namespaces"]({{}}) for more information. +A database can be managed by an operator in the same namespace, or a different namespace. See ["Flexible deployment"]({{}}) options and ["Manage databases in multiple namespaces"]({{}}) for more information. ## Active-Active databases +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. For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). + +Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail. + ## RedisEnterpriseRemoteCluster RERC ## RedisEnterpriseActiveActiveDatabase REAADB @@ -69,16 +85,38 @@ A database can be managed by an operator in the same namespace, or a different n ## Security -secrets +Redis Enterprise for Kubernetes allows you to use secrets to manage your cluster credentials, cluster certificates, and client certificates. You can configure LDAP and internode encryption via the RedisEnterpriseCluster spec. + +### REC credentials + +Redis Enterprise for Kubernetes uses a custom resource called [`RedisEnterpriseCluster`]({{< relref "/operate/kubernetes/reference/redis_enterprise_cluster_api" >}}) to create a Redis Enterprise cluster (REC). During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. + +### REC certificates + +By default, Redis Enterprise Software for Kubernetes generates TLS certificates for the cluster during creation. These self-signed certificates are generated on the first node of each Redis Enterprise cluster (REC) and are copied to all other nodes added to the cluster. + +## Client certificates + +For each client certificate you want to use with your database, you need to create a Kubernetes secret to hold it. You can then reference that secret in your Redis Enterprise database (REDB) custom resource spec. ## Storage -PVCs, network attached +Redis Enterprise for Kubernetes requires network-attached storage. + +We use PersistentVolumeClaims (PVCs) to manage storage resources. The PVC is an abstract representation of the PersistentVolume resources used by your Redis pods.[PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) are created by the Redis Enterprise operator and used by the RedisEnterpriseCluster (REC). + +PVCs are created with a specific size and [can be expanded](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) with the following steps, if the underlying [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) supports it. ## Networking -ingress and ingressorRoutes +By default, Kubernetes doesn't allow you to access your Redis database from outside your K8s cluster. Redis Enterprise for Kubernetes supports several ways to route external traffic to your RedisEnterpriseCluster: + +- Ingress controllers [HAProxy](https://haproxy-ingress.github.io/) and [NGINX](https://kubernetes.github.io/ingress-nginx/) require an `ingress` API resource. +- [Istio](https://istio.io/latest/docs/setup/getting-started/) requires `Gateway` and `VirtualService` API resources. +- OpenShift uses [routes]({{< relref "/operate/kubernetes/networking/routes.md" >}}) to route external traffic. + +The RedisEnterpriseActiveActiveDatabase (REAADB) requires one of above routing methods to be configured in the RedisEnterpriseCluster (REC) with the `ingressOrRouteSpec` field. ## Metrics -Promethius service \ No newline at end of file +To collect metrics data from your databases and Redis Enterprise cluster (REC), you can connect your [Prometheus](https://prometheus.io/) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. \ No newline at end of file diff --git a/content/operate/kubernetes/deployment/_index.md b/content/operate/kubernetes/deployment/_index.md index c9e7da5d93..5aee514767 100644 --- a/content/operate/kubernetes/deployment/_index.md +++ b/content/operate/kubernetes/deployment/_index.md @@ -15,23 +15,6 @@ weight: 11 This section lists the different ways to set up and run Redis Enterprise for Kubernetes. You can deploy on variety of Kubernetes distributions both on-prem and in the cloud via our Redis Enterprise operator for Kubernetes. -## Operator overview {#overview} - -Redis Enterprise for Kubernetes uses [custom resource definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions) (CRDs) to create and manage Redis Enterprise clusters (REC) and Redis Enterprise databases (REDB). - -The operator is a deployment that runs within a given namespace. These operator pods must run with sufficient privileges to create the Redis Enterprise cluster resources within that namespace. - -When the operator is installed, the following resources are created: - -* a service account under which the operator will run -* a set of roles to define the privileges necessary for the operator to perform its tasks -* a set of role bindings to authorize the service account for the correct roles (see above) -* the CRD for a Redis Enterprise cluster (REC) -* the CRD for a Redis Enterprise database (REDB) -* the operator itself (a deployment) - -The operator currently runs within a single namespace and is scoped to operate only on the Redis Enterprise cluster in that namespace. - ## Compatibility Before installing, check [Supported Kubernetes distributions]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) to see which Redis Enterprise operator version supports your Kubernetes distribution. From 8057da7912c00eac41a20a0381499f8e0811424e Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 14:29:49 -0500 Subject: [PATCH 09/33] edits from review feedback --- .../operate/kubernetes/architecture/_index.md | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index fd6ba89b81..100471bdd8 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -11,7 +11,7 @@ linkTitle: Architecture weight: 1 --- -Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), with the flexibility and ease of use Kubernetes (K8s) provides. Redis Enterprise for Kubernetes uses a custom operator and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. +Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), with the flexibility and ease of use Kubernetes (K8s) provides. Redis Enterprise for Kubernetes uses a the Kubernetes operator pattern and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. The image below illustrates the components of a single namespace, three node deployment. @@ -19,9 +19,9 @@ The image below illustrates the components of a single namespace, three node dep ## Operator -An operator is a custom extension of the Kubernetes API designed to manage complex, stateful processes and resources. The Redis Enterprise operator uses controllers to manage Redis Enterprise’s custom resources (CRs), ensuring that these resources are continuously monitored and maintained. +An [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) is a custom extension of the Kubernetes API designed to manage complex, stateful applications and their components. This operator pattern is commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. Kubernetes.io/docs has a great explanation of the [operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/). ---->Operator pattern is a common way to extend the K8s API to work with databases....... +The Redis Enterprise operator uses controllers to manage Redis Enterprise’s custom resources (CRs), ensuring that these resources are continuously monitored and maintained. The operator is a deployment that runs within a given namespace. These operator pods must run with sufficient privileges to create the Redis Enterprise cluster resources within that namespace. @@ -37,15 +37,15 @@ When the operator is installed, the following resources are created: The Redis Enterprise operator is deployed within a namespace. Each namespace can host only one operator and one RedisEnterpriseCluster instance. Namespaces create a logical boundaries between resources, allowing organization and security. Some resources in your deployment are limited to a namespace, while others are cluster-wide. -Redis Enterprise for Kubernetes supports multi-namespace deployments, meaning databases in multiple namespaces can be monitored by a single operator. +Redis Enterprise for Kubernetes also supports multi-namespace deployments, meaning databases in other namespaces (that host applications) for custom resources and applies any changes defined in those custom resources. ## Custom resources -Custom resources (CRs) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way. Custom resources are created and managed using YAML configuration files. +Kubernetes custom resources (CRs) are commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. [Custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way.Custom resources are created and managed using YAML configuration files. This [declarative configuration approach](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) allows you to specify the desired state for your resources, and the operator makes the necessary changes to achieve that state. This simplifies installation, upgrades, and scaling both vertically and horizontally. -The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file and the actual state of your resources. +The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file and the actual state of your resources. Custom resources can also reside in separate namespaces from the operator managing them, such as in [multi-namespace installations](ADD LINK). ## Custom resource definitions @@ -71,18 +71,6 @@ Redis databases are created and managed by the RedisEnterpriseDatabase (REDB) cu A database can be managed by an operator in the same namespace, or a different namespace. See ["Flexible deployment"]({{}}) options and ["Manage databases in multiple namespaces"]({{}}) for more information. -## Active-Active databases - -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. For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). - -Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail. - -## RedisEnterpriseRemoteCluster RERC - -## RedisEnterpriseActiveActiveDatabase REAADB - -## Services Rigger - ## Security Redis Enterprise for Kubernetes allows you to use secrets to manage your cluster credentials, cluster certificates, and client certificates. You can configure LDAP and internode encryption via the RedisEnterpriseCluster spec. @@ -97,16 +85,22 @@ By default, Redis Enterprise Software for Kubernetes generates TLS certificates ## Client certificates -For each client certificate you want to use with your database, you need to create a Kubernetes secret to hold it. You can then reference that secret in your Redis Enterprise database (REDB) custom resource spec. +For each client certificate you want to use, you need to create a [Kubernetes secret](ADD LINK) to hold it. You can then reference that secret in your Redis Enterprise database (REDB) custom resource spec. ## Storage -Redis Enterprise for Kubernetes requires network-attached storage. +[Persistent storage is mandatory for Redis Enterprise.]({{}}) Redis Enterprise for Kubernetes [requires network-attached storage](https://en.wikipedia.org/wiki/Network-attached_storage). -We use PersistentVolumeClaims (PVCs) to manage storage resources. The PVC is an abstract representation of the PersistentVolume resources used by your Redis pods.[PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) are created by the Redis Enterprise operator and used by the RedisEnterpriseCluster (REC). +Redis Enterprise for Kubernetes uses [[PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) to manage storage resources. The PVC is an abstract representation of the PersistentVolume resources used by your Redis pods. PVCs are created by the Redis Enterprise operator and used by the RedisEnterpriseCluster (REC). PVCs are created with a specific size and [can be expanded](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) with the following steps, if the underlying [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) supports it. +### Auto Tiering + +Redis Enterprise Software for Kubernetes supports using Auto Tiering (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets. + +NVMe (non-volatile memory express) SSDs are strongly recommended to achieve the best performance. + ## Networking By default, Kubernetes doesn't allow you to access your Redis database from outside your K8s cluster. Redis Enterprise for Kubernetes supports several ways to route external traffic to your RedisEnterpriseCluster: @@ -117,6 +111,18 @@ By default, Kubernetes doesn't allow you to access your Redis database from outs The RedisEnterpriseActiveActiveDatabase (REAADB) requires one of above routing methods to be configured in the RedisEnterpriseCluster (REC) with the `ingressOrRouteSpec` field. +## Services Rigger + +## Active-Active databases + +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. For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). + +Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail. + +## RedisEnterpriseRemoteCluster RERC + +## RedisEnterpriseActiveActiveDatabase REAADB + ## Metrics To collect metrics data from your databases and Redis Enterprise cluster (REC), you can connect your [Prometheus](https://prometheus.io/) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. \ No newline at end of file From 34cafc962e01925aaa717018c8eb374474f83eb8 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 16:06:31 -0500 Subject: [PATCH 10/33] proof through namespace --- .../operate/kubernetes/architecture/_index.md | 48 +++++++++++++------ 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 100471bdd8..2f990cf2cf 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -11,7 +11,17 @@ linkTitle: Architecture weight: 1 --- -Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), with the flexibility and ease of use Kubernetes (K8s) provides. Redis Enterprise for Kubernetes uses a the Kubernetes operator pattern and custom controllers to bring the best of Redis Enterprise to Kubernetes platforms. +Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), with the flexibility and ease of [Kubernetes (K8s)](https://kubernetes.io/). Redis Enterprise for Kubernetes uses the Kubernetes operator pattern and custom controllers to bring the best of Redis Enterprise to the Kubernetes platform. + +## Lifecycle + +Kubernetes is a rapidly evolving platform with a short release cycle (around 4 months). This frequent influx of new features, enhancements and bug fixes means Kubernetes distributions move in and out of support quickly. Redis Enterprise is also a fast-moving product, and is compatible and tested only on distributions listed as [supported distributions.]({{}}) + +Each version of Redis Enterprise for Kubernetes is tested to ensure the version of Redis Enterprise works with the [supported Kubernetes distributions]({{}}) at the time. Both the Kubernetes version and the Redis Enterprise version must be supported for the operator to function correctly. We encourage you to upgrade Redis Enterprise for Kubernetes frequently, not only to get the benefit of enhancements and bug fixes, but to keep your software supported. + +Supported platforms are listed in the [release notes]({{}}) and in the [supported platforms reference.]({{}}) + +## Architecture The image below illustrates the components of a single namespace, three node deployment. @@ -21,27 +31,25 @@ The image below illustrates the components of a single namespace, three node dep An [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) is a custom extension of the Kubernetes API designed to manage complex, stateful applications and their components. This operator pattern is commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. Kubernetes.io/docs has a great explanation of the [operator pattern](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/). -The Redis Enterprise operator uses controllers to manage Redis Enterprise’s custom resources (CRs), ensuring that these resources are continuously monitored and maintained. - -The operator is a deployment that runs within a given namespace. These operator pods must run with sufficient privileges to create the Redis Enterprise cluster resources within that namespace. +The operator is a deployment that runs within a [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) and uses [controllers](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#custom-controllers) to manage [custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/), ensuring these resources are continuously monitored and maintained. When the operator is installed, the following resources are created: - service account under which the operator will run -- set of roles to define the privileges necessary for the operator to perform its tasks -- set of role bindings to authorize the service account for the correct roles (see above) -- CustomResourceDefinition (CRD) for each Redis Enterprise custom resource -- the operator itself (a deployment) +- set of [roles]() to define the privileges necessary for the operator to perform its tasks +- set of [role bindings]() to authorize the service account +- [CustomResourceDefinition (CRD)]() for each Redis Enterprise custom resource +- the operator deployment ## Namespace -The Redis Enterprise operator is deployed within a namespace. Each namespace can host only one operator and one RedisEnterpriseCluster instance. Namespaces create a logical boundaries between resources, allowing organization and security. Some resources in your deployment are limited to a namespace, while others are cluster-wide. +The Redis Enterprise operator is deployed within a [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). Each namespace can host only one operator and one [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). Namespaces create a logical boundaries between resources, allowing organization and security. Some resources are limited to a namespace, while others are cluster-wide. -Redis Enterprise for Kubernetes also supports multi-namespace deployments, meaning databases in other namespaces (that host applications) for custom resources and applies any changes defined in those custom resources. +Redis Enterprise for Kubernetes also supports [multi-namespace deployments]({{}}), meaning the operator can monitor other namespaces (that host applications) for custom resources and apply any changes. ## Custom resources -Kubernetes custom resources (CRs) are commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. [Custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way.Custom resources are created and managed using YAML configuration files. +Kubernetes custom resources (CRs) are commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. [Custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way. Custom resources are created and managed using YAML configuration files. This [declarative configuration approach](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) allows you to specify the desired state for your resources, and the operator makes the necessary changes to achieve that state. This simplifies installation, upgrades, and scaling both vertically and horizontally. @@ -75,11 +83,11 @@ A database can be managed by an operator in the same namespace, or a different n Redis Enterprise for Kubernetes allows you to use secrets to manage your cluster credentials, cluster certificates, and client certificates. You can configure LDAP and internode encryption via the RedisEnterpriseCluster spec. -### REC credentials +## REC credentials Redis Enterprise for Kubernetes uses a custom resource called [`RedisEnterpriseCluster`]({{< relref "/operate/kubernetes/reference/redis_enterprise_cluster_api" >}}) to create a Redis Enterprise cluster (REC). During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. -### REC certificates +## REC certificates By default, Redis Enterprise Software for Kubernetes generates TLS certificates for the cluster during creation. These self-signed certificates are generated on the first node of each Redis Enterprise cluster (REC) and are copied to all other nodes added to the cluster. @@ -95,7 +103,7 @@ Redis Enterprise for Kubernetes uses [[PersistentVolumeClaims (PVC)](https://kub PVCs are created with a specific size and [can be expanded](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) with the following steps, if the underlying [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) supports it. -### Auto Tiering +## Auto Tiering Redis Enterprise Software for Kubernetes supports using Auto Tiering (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets. @@ -119,10 +127,22 @@ On Kubernetes, Redis Enterprise [Active-Active]({{< relref "/operate/rs/database Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail. +The admission controller is required for Active-Active databases on Kubernetes, to validate changes to the custom resources. + +For more details and installation information, see [Active-Active databases]({{}}) + ## RedisEnterpriseRemoteCluster RERC +The RedisEnterpriseRemoteCluster (RERC) contains details allowing the REC to link to the RedisEnterpriseActiveActiveDatabase (REAADB). The RERC resource is listed in the REAADB resource to become a participating cluster for the Active-Active database. + +For more details, see the [RERC API reference]({{}}). + ## RedisEnterpriseActiveActiveDatabase REAADB +The RedisEnterpriseActiveActiveDatabase (REAADB) resource creates and manages a database that spans more than one Kubernetes cluster. + +For more details, see the [REAADB API reference]({{}}). + ## Metrics To collect metrics data from your databases and Redis Enterprise cluster (REC), you can connect your [Prometheus](https://prometheus.io/) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. \ No newline at end of file From 4a74f6c04678a3305774a848a575568d51d9ff56 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 16:44:19 -0500 Subject: [PATCH 11/33] proof and link CR and security sections --- .../operate/kubernetes/architecture/_index.md | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 2f990cf2cf..227afdcccd 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -36,64 +36,72 @@ The operator is a deployment that runs within a [namespace](https://kubernetes.i When the operator is installed, the following resources are created: - service account under which the operator will run -- set of [roles]() to define the privileges necessary for the operator to perform its tasks -- set of [role bindings]() to authorize the service account -- [CustomResourceDefinition (CRD)]() for each Redis Enterprise custom resource +- set of [roles](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole) to define the privileges necessary for the operator to perform its tasks +- set of [role bindings](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-and-clusterrolebinding) to authorize the service account +- [CustomResourceDefinition (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions) for each Redis Enterprise custom resource - the operator deployment ## Namespace -The Redis Enterprise operator is deployed within a [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). Each namespace can host only one operator and one [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). Namespaces create a logical boundaries between resources, allowing organization and security. Some resources are limited to a namespace, while others are cluster-wide. +The Redis Enterprise [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) is deployed within a [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). Each namespace can host only one operator and one [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). Namespaces create a logical boundaries between resources, allowing organization and security. Some resources are limited to a namespace, while others are cluster-wide. Redis Enterprise for Kubernetes also supports [multi-namespace deployments]({{}}), meaning the operator can monitor other namespaces (that host applications) for custom resources and apply any changes. ## Custom resources -Kubernetes custom resources (CRs) are commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. [Custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way. Custom resources are created and managed using YAML configuration files. +Kubernetes [custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) are commonly used by databases and other applications to extend the cluster's behavior without changing its underlying code. [Custom resources (CRs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) extend the Kubernetes API, enabling users to manage Redis databases the Kubernetes way. Custom resources are created and managed using YAML configuration files. This [declarative configuration approach](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/) allows you to specify the desired state for your resources, and the operator makes the necessary changes to achieve that state. This simplifies installation, upgrades, and scaling both vertically and horizontally. -The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file and the actual state of your resources. Custom resources can also reside in separate namespaces from the operator managing them, such as in [multi-namespace installations](ADD LINK). +The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file, and the actual state of your resources. Custom resources can also reside in separate namespaces from the operator managing them, such as in [multi-namespace installations]({{}}). ## Custom resource definitions -A custom resource definition (CRD) is a cluster-wide resource that specifies which settings can be configured via custom resource files. Any setting not defined by the CRD is not managed by the operator. Changes to these unmanaged settings can still be made using standard Redis Enterprise Software methods. +A [custom resource definition (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions) is a cluster-wide resource that specifies which settings can be configured via custom resource files. Any setting not defined by the CRD is not managed by the operator. Changes to these unmanaged settings can still be made using standard Redis Enterprise Software methods. For settings managed by the operator, any changes made outside of the CR YAML files (e.g., through the management UI) will be overwritten by the operator. Ensure that all operator-managed settings are updated using the CR YAML files to prevent conflicts. ## RedisEnterpriseCluster REC -A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances (shards). +A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances [(shards)]({{}}). {{< image filename="/images/k8s/k8s-node-arch.png">}} -A Redis cluster is created an managed by the RedisEnterpriseCluster (REC) custom resource. Changes to the REC YAML configuration prompt the operator to make changes to the cluster.The REC is required for both standard databases (REDB) and Active-Active databases (REAADB). +A Redis cluster is created an managed by the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REC configuration file prompt the operator to make changes to the cluster. The REC is required for both standard databases [(REDB)](#redisenterprisedatabase-redb) and Active-Active databases [(REAADB)](#redisenterpriseactiveactivedatabase-reaadb). -See the [RedisEnterpriseCluster (REC) API Reference]({{}}) for a full list of fields and settings. +See the [RedisEnterpriseCluster API Reference]({{}}) for a full list of fields and settings. ## RedisEnterpriseDatabase REDB -A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances (shards). A Redis instance is a single-threaded database process (commonly referred to as a shard). +A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances (shards). A Redis instance is a single-threaded database process [(commonly referred to as a shard)]({{}}). -Redis databases are created and managed by the RedisEnterpriseDatabase (REDB) custom resource. Changes to the REDB YAML configuration file prompt the operator to make changes to the database. See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. +Redis databases are created and managed by the [RedisEnterpriseDatabase (REDB)]({{}}) [custom resource (CR)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REDB YAML configuration file prompt the operator to make changes to the database. A database can be managed by an operator in the same namespace, or a different namespace. See ["Flexible deployment"]({{}}) options and ["Manage databases in multiple namespaces"]({{}}) for more information. +See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. + ## Security -Redis Enterprise for Kubernetes allows you to use secrets to manage your cluster credentials, cluster certificates, and client certificates. You can configure LDAP and internode encryption via the RedisEnterpriseCluster spec. +Redis Enterprise for Kubernetes uses [secrets](https://kubernetes.io/docs/concepts/configuration/secret/) to manage your cluster credentials, cluster certificates, and client certificates. You can configure [LDAP]({{}}) and [internode encryption]({{}}) via the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec) spec. ## REC credentials -Redis Enterprise for Kubernetes uses a custom resource called [`RedisEnterpriseCluster`]({{< relref "/operate/kubernetes/reference/redis_enterprise_cluster_api" >}}) to create a Redis Enterprise cluster (REC). During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. +Redis Enterprise for Kubernetes the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to create a Redis Enterprise cluster. During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. + +See [Manage REC credentials]({{}}) for more details. ## REC certificates -By default, Redis Enterprise Software for Kubernetes generates TLS certificates for the cluster during creation. These self-signed certificates are generated on the first node of each Redis Enterprise cluster (REC) and are copied to all other nodes added to the cluster. +By default, Redis Enterprise Software for Kubernetes generates TLS certificates for the cluster during creation. These self-signed certificates are generated on the first node of each Redis Enterprise cluster (REC) and are copied to all other nodes in the cluster. + +See [Manage REC certificates]({{}}) for more details. ## Client certificates -For each client certificate you want to use, you need to create a [Kubernetes secret](ADD LINK) to hold it. You can then reference that secret in your Redis Enterprise database (REDB) custom resource spec. +For each client certificate you want to use, you need to create a [Kubernetes secret](https://kubernetes.io/docs/concepts/configuration/secret/) to hold it. You can then reference that secret in your [Redis Enterprise database (REDB)](#redisenterprisedatabase-redb) custom resource. + +See [Add client certificates]({{}}) for more details. ## Storage From afbc3499d2ea6cbab650276648cc81684ba22b61 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 16:45:49 -0500 Subject: [PATCH 12/33] proof storage --- content/operate/kubernetes/architecture/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 227afdcccd..67bb11a501 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -107,9 +107,9 @@ See [Add client certificates]({{}}) Redis Enterprise for Kubernetes [requires network-attached storage](https://en.wikipedia.org/wiki/Network-attached_storage). -Redis Enterprise for Kubernetes uses [[PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) to manage storage resources. The PVC is an abstract representation of the PersistentVolume resources used by your Redis pods. PVCs are created by the Redis Enterprise operator and used by the RedisEnterpriseCluster (REC). +Redis Enterprise for Kubernetes uses [PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) to manage storage resources. The PVC is an abstract representation of the [PersistentVolume (PV)](https://kubernetes.io/docs/concepts/storage/persistent-volumes) resources used by your Redis pods. PVCs are created by the Redis Enterprise operator and used by the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). -PVCs are created with a specific size and [can be expanded](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) with the following steps, if the underlying [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) supports it. +PVCs are created with a specific size and [can be expanded](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims), if the underlying [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) supports it. ## Auto Tiering From d2b6dfcba3905763477f09a209c313b7f5b2c553 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 16:47:24 -0500 Subject: [PATCH 13/33] auto tiering --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 67bb11a501..2e7a5ed535 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -113,7 +113,7 @@ PVCs are created with a specific size and [can be expanded](https://kubernetes.i ## Auto Tiering -Redis Enterprise Software for Kubernetes supports using Auto Tiering (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets. +Redis Enterprise Software for Kubernetes supports [Auto Tiering]({{}}) (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets. NVMe (non-volatile memory express) SSDs are strongly recommended to achieve the best performance. From 2362f6af14da8e5ecaef718ca404fb9436fdc821 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 16:52:59 -0500 Subject: [PATCH 14/33] networking --- content/operate/kubernetes/architecture/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 2e7a5ed535..46cf95ddf5 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -119,13 +119,13 @@ NVMe (non-volatile memory express) SSDs are strongly recommended to achieve the ## Networking -By default, Kubernetes doesn't allow you to access your Redis database from outside your K8s cluster. Redis Enterprise for Kubernetes supports several ways to route external traffic to your RedisEnterpriseCluster: +By default, Kubernetes doesn't allow you to access your Redis database from outside your K8s cluster. Redis Enterprise for Kubernetes supports several ways to route external traffic to your [Redis Enterprise cluster (REC)](#redisenterprisecluster-rec): - Ingress controllers [HAProxy](https://haproxy-ingress.github.io/) and [NGINX](https://kubernetes.github.io/ingress-nginx/) require an `ingress` API resource. - [Istio](https://istio.io/latest/docs/setup/getting-started/) requires `Gateway` and `VirtualService` API resources. - OpenShift uses [routes]({{< relref "/operate/kubernetes/networking/routes.md" >}}) to route external traffic. -The RedisEnterpriseActiveActiveDatabase (REAADB) requires one of above routing methods to be configured in the RedisEnterpriseCluster (REC) with the `ingressOrRouteSpec` field. +The [Active-Active databases](#active-active-databases) require one of above routing methods to be configured in the REC with the [ingressOrRouteSpec field]({{}}). ## Services Rigger From fd75d1fc7dbde385ce28ef29caeaec72617a6a2d Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 16:55:00 -0500 Subject: [PATCH 15/33] hide FAQs --- content/operate/kubernetes/faqs/_index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/operate/kubernetes/faqs/_index.md b/content/operate/kubernetes/faqs/_index.md index 7e9f38196a..da1bd6ff62 100644 --- a/content/operate/kubernetes/faqs/_index.md +++ b/content/operate/kubernetes/faqs/_index.md @@ -7,6 +7,7 @@ categories: - kubernetes description: null hideListLinks: true +hidden: true linkTitle: FAQs weight: 100 --- @@ -14,7 +15,7 @@ Here are some frequently asked questions about Redis Enterprise on integration p ## What is an Operator? -An operator is a [Kubernetes custom controller](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources#custom-controllers) which extends the native K8s API. Refer to the article [Redis Enterprise K8s Operator-based deployments – Overview]({{< relref "/operate/kubernetes/architecture/operator.md" >}}). +An operator is a [Kubernetes custom controller](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources#custom-controllers) which extends the native K8s API. Refer to the article [Redis Enterprise K8s Operator-based deployments – Overview]({{< relref "/operate/kubernetes/architecture/" >}}). ## Does Redis Enterprise operator support multiple RECs per namespace? From 93c5d7b0139411417cd78eef0c9d6d97b9a0043f Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 16:58:41 -0500 Subject: [PATCH 16/33] fix links --- content/operate/kubernetes/architecture/_index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 46cf95ddf5..625120aa78 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -63,7 +63,7 @@ For settings managed by the operator, any changes made outside of the CR YAML fi ## RedisEnterpriseCluster REC -A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances [(shards)]({{}}). +A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances [(shards)]({{}}). {{< image filename="/images/k8s/k8s-node-arch.png">}} @@ -73,7 +73,7 @@ See the [RedisEnterpriseCluster API Reference]({{}}). +A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances (shards). A Redis instance is a single-threaded database process [(commonly referred to as a shard)]({{}}). Redis databases are created and managed by the [RedisEnterpriseDatabase (REDB)]({{}}) [custom resource (CR)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REDB YAML configuration file prompt the operator to make changes to the database. @@ -105,7 +105,7 @@ See [Add client certificates]({{}}) Redis Enterprise for Kubernetes [requires network-attached storage](https://en.wikipedia.org/wiki/Network-attached_storage). +[Persistent storage is mandatory for Redis Enterprise.]({{}}) Redis Enterprise for Kubernetes [requires network-attached storage](https://en.wikipedia.org/wiki/Network-attached_storage). Redis Enterprise for Kubernetes uses [PersistentVolumeClaims (PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims) to manage storage resources. The PVC is an abstract representation of the [PersistentVolume (PV)](https://kubernetes.io/docs/concepts/storage/persistent-volumes) resources used by your Redis pods. PVCs are created by the Redis Enterprise operator and used by the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). From 64f8368b3912cc9a7af20f0a7cfd45983599266b Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Mon, 21 Oct 2024 17:09:38 -0500 Subject: [PATCH 17/33] metrics proof --- .../operate/kubernetes/architecture/_index.md | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 625120aa78..751b4fbc2a 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -51,7 +51,7 @@ Redis Enterprise for Kubernetes also supports [multi-namespace deployments]({{}}), [upgrades]({{}}), and [scaling]({{}}) both vertically and horizontally. The operator continuously monitors CRs for changes, automatically reconciling any differences between the desired state you specified in your YAML configuration file, and the actual state of your resources. Custom resources can also reside in separate namespaces from the operator managing them, such as in [multi-namespace installations]({{}}). @@ -85,19 +85,19 @@ See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) and [internode encryption]({{}}) via the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec) spec. -## REC credentials +### REC credentials Redis Enterprise for Kubernetes the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to create a Redis Enterprise cluster. During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. See [Manage REC credentials]({{}}) for more details. -## REC certificates +### REC certificates By default, Redis Enterprise Software for Kubernetes generates TLS certificates for the cluster during creation. These self-signed certificates are generated on the first node of each Redis Enterprise cluster (REC) and are copied to all other nodes in the cluster. See [Manage REC certificates]({{}}) for more details. -## Client certificates +### Client certificates For each client certificate you want to use, you need to create a [Kubernetes secret](https://kubernetes.io/docs/concepts/configuration/secret/) to hold it. You can then reference that secret in your [Redis Enterprise database (REDB)](#redisenterprisedatabase-redb) custom resource. @@ -111,7 +111,7 @@ Redis Enterprise for Kubernetes uses [PersistentVolumeClaims (PVC)](https://kube PVCs are created with a specific size and [can be expanded](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims), if the underlying [storage class](https://kubernetes.io/docs/concepts/storage/storage-classes/) supports it. -## Auto Tiering +### Auto Tiering Redis Enterprise Software for Kubernetes supports [Auto Tiering]({{}}) (previously known as Redis on Flash), which extends your node memory to use both RAM and flash storage. SSDs (solid state drives) can store infrequently used (warm) values while your keys and frequently used (hot) values are still stored in RAM. This improves performance and lowers costs for large datasets. @@ -131,26 +131,22 @@ The [Active-Active databases](#active-active-databases) require one of above rou ## Active-Active databases -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. For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). +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. Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail.The admission controller is also required for Active-Active databases on Kubernetes, to validate changes to the custom resources. -Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail. - -The admission controller is required for Active-Active databases on Kubernetes, to validate changes to the custom resources. - -For more details and installation information, see [Active-Active databases]({{}}) +For more details and installation information, see [Active-Active databases]({{}}). For more general information about Active-Active, see the [Redis Enterprise Software docs]({{< relref "/operate/rs/databases/active-active/" >}}). ## RedisEnterpriseRemoteCluster RERC -The RedisEnterpriseRemoteCluster (RERC) contains details allowing the REC to link to the RedisEnterpriseActiveActiveDatabase (REAADB). The RERC resource is listed in the REAADB resource to become a participating cluster for the Active-Active database. +The [RedisEnterpriseRemoteCluster (RERC)]({{}}) contains details allowing the REC to link to the RedisEnterpriseActiveActiveDatabase (REAADB). The RERC resource is listed in the [REAADB](#redisenterpriseactiveactivedatabase-reaadb) resource to become a participating cluster for the Active-Active database. -For more details, see the [RERC API reference]({{}}). +See the [RERC API reference]({{}}) for a full list of fields and settings. ## RedisEnterpriseActiveActiveDatabase REAADB -The RedisEnterpriseActiveActiveDatabase (REAADB) resource creates and manages a database that spans more than one Kubernetes cluster. +The RedisEnterpriseActiveActiveDatabase (REAADB) resource creates and manages a database that spans more than one Kubernetes cluster. An REAADB requires [external routing](#networking), at least two [RECs](#redisenterprisecluster-rec), and at least two [RERCs](#redisenterpriseremotecluster-rerc). -For more details, see the [REAADB API reference]({{}}). +See the [REAADB API reference]({{}}) for a full list of fields and settings. ## Metrics -To collect metrics data from your databases and Redis Enterprise cluster (REC), you can connect your [Prometheus](https://prometheus.io/) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. \ No newline at end of file +To collect metrics data from your databases and Redis Enterprise cluster (REC), you can [connect your Prometheus]({{}}) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. From d37c340daa35a150759e8c6cc195ec054dfc83e4 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Tue, 22 Oct 2024 07:14:54 -0500 Subject: [PATCH 18/33] services rigger --- content/operate/kubernetes/architecture/_index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 751b4fbc2a..64627ff870 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -129,6 +129,10 @@ The [Active-Active databases](#active-active-databases) require one of above rou ## Services Rigger +The services rigger is responsible for creating and updating services related to database objects. It identifies database objects within the cluster and creates services (by default `cluster_ip` type) to allow access to those databases. By default, the services have the same name as the databases. You can view a list of services with the `kubectl get services` command. + +Kubernetes is a dynamic environment, with nodes and pods changing as needed. The services rigger monitors the cluster for these changes and updates the database services to ensure reliable communication with the databases. + ## Active-Active databases 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. Creating an Active-Active database requires routing [network access]({{< relref "/operate/kubernetes/networking/" >}}) between two Redis Enterprise clusters residing in different Kubernetes clusters. Without the proper access configured for each cluster, syncing between the databases instances will fail.The admission controller is also required for Active-Active databases on Kubernetes, to validate changes to the custom resources. From 07b2c01010d0943e69e5e834c6e4dbae7ad1e534 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Tue, 22 Oct 2024 16:12:50 -0500 Subject: [PATCH 19/33] DOC-4402 --- .../operate/kubernetes/architecture/deployment-options.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/operate/kubernetes/architecture/deployment-options.md b/content/operate/kubernetes/architecture/deployment-options.md index e1f65bd27f..d0f1c463ff 100644 --- a/content/operate/kubernetes/architecture/deployment-options.md +++ b/content/operate/kubernetes/architecture/deployment-options.md @@ -16,8 +16,9 @@ You can deploy Redis Enterprise for Kubernetes in several different ways dependi Multiple Redis Enterprise database resources (REDB) can be associated with single Redis Enterprise cluster resource (REC) even if they reside in different namespaces. -{{}} The Redis Enterprise cluster (REC) custom resource must reside in the same namespace as the Redis Enterprise operator. -{{}} +The Redis Enterprise cluster (REC) custom resource must reside in the same namespace as the Redis Enterprise operator. + +{{}} Multi-namespace installations don't support Active-Active databases (REEADB). Only databases created with the REDB resource are supported in multi-namespace deployments at this time.{{}} ## Single REC and single namespace (one-to-one) From f8dfe2dc1b6ad6d4933b634e48c201267d042d57 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Tue, 22 Oct 2024 16:14:19 -0500 Subject: [PATCH 20/33] DOC-4402 --- content/operate/kubernetes/architecture/deployment-options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/deployment-options.md b/content/operate/kubernetes/architecture/deployment-options.md index d0f1c463ff..f1197795a6 100644 --- a/content/operate/kubernetes/architecture/deployment-options.md +++ b/content/operate/kubernetes/architecture/deployment-options.md @@ -14,7 +14,7 @@ weight: 12 --- You can deploy Redis Enterprise for Kubernetes in several different ways depending on your database needs. -Multiple Redis Enterprise database resources (REDB) can be associated with single Redis Enterprise cluster resource (REC) even if they reside in different namespaces. +Multiple RedisEnterpriseDatabase (REDB) resources can be associated with single Redis Enterprise cluster resource (REC) even if they reside in different namespaces. The Redis Enterprise cluster (REC) custom resource must reside in the same namespace as the Redis Enterprise operator. From 71d0c2494057a72c3878eb877b1150edc23bd1ae Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:02:49 -0500 Subject: [PATCH 21/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 64627ff870..95e1e33c09 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -35,7 +35,7 @@ The operator is a deployment that runs within a [namespace](https://kubernetes.i When the operator is installed, the following resources are created: -- service account under which the operator will run +- [service account](https://kubernetes.io/docs/concepts/security/service-accounts/) under which the operator will run - set of [roles](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole) to define the privileges necessary for the operator to perform its tasks - set of [role bindings](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#rolebinding-and-clusterrolebinding) to authorize the service account - [CustomResourceDefinition (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions) for each Redis Enterprise custom resource From 9338a14d6fac507cb05a2090fc07654b334ee003 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:22:53 -0500 Subject: [PATCH 22/33] Apply suggestions from code review Co-authored-by: mich-elle-luna <153109578+mich-elle-luna@users.noreply.github.com> --- content/operate/kubernetes/architecture/deployment-options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/deployment-options.md b/content/operate/kubernetes/architecture/deployment-options.md index f1197795a6..c7e48212e2 100644 --- a/content/operate/kubernetes/architecture/deployment-options.md +++ b/content/operate/kubernetes/architecture/deployment-options.md @@ -14,7 +14,7 @@ weight: 12 --- You can deploy Redis Enterprise for Kubernetes in several different ways depending on your database needs. -Multiple RedisEnterpriseDatabase (REDB) resources can be associated with single Redis Enterprise cluster resource (REC) even if they reside in different namespaces. +Multiple RedisEnterpriseDatabase (REDB) resources can be associated with a single Redis Enterprise cluster resource (REC) even if they reside in different namespaces. The Redis Enterprise cluster (REC) custom resource must reside in the same namespace as the Redis Enterprise operator. From 6bb124cd534d2bb4fa507e7e83092dd1c0181233 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:24:29 -0500 Subject: [PATCH 23/33] Apply suggestions from code review Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 95e1e33c09..1805685350 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -43,7 +43,7 @@ When the operator is installed, the following resources are created: ## Namespace -The Redis Enterprise [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) is deployed within a [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). Each namespace can host only one operator and one [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). Namespaces create a logical boundaries between resources, allowing organization and security. Some resources are limited to a namespace, while others are cluster-wide. +The Redis Enterprise [operator](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) is deployed within a [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). Each namespace can host only one operator and one [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec). Namespaces create logical boundaries between resources, allowing organization and security. Some resources are limited to a namespace, while others are cluster-wide. Redis Enterprise for Kubernetes also supports [multi-namespace deployments]({{}}), meaning the operator can monitor other namespaces (that host applications) for custom resources and apply any changes. From 59da382a1fbaac4bf124b840e845bcc344aaf854 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:24:47 -0500 Subject: [PATCH 24/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 1805685350..60dceffe35 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -57,7 +57,7 @@ The operator continuously monitors CRs for changes, automatically reconciling an ## Custom resource definitions -A [custom resource definition (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions) is a cluster-wide resource that specifies which settings can be configured via custom resource files. Any setting not defined by the CRD is not managed by the operator. Changes to these unmanaged settings can still be made using standard Redis Enterprise Software methods. +A [custom resource definition (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions) is a cluster-wide resource that specifies which settings can be configured via custom resource files. Any setting not defined by the CRD is not managed by the operator. You can still make changes to these unmanaged settings using standard Redis Enterprise Software methods. For settings managed by the operator, any changes made outside of the CR YAML files (e.g., through the management UI) will be overwritten by the operator. Ensure that all operator-managed settings are updated using the CR YAML files to prevent conflicts. From 7da3b1f21b5b2592bc3da55956f14f9fb888711a Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:25:10 -0500 Subject: [PATCH 25/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 60dceffe35..9cf11b7ca2 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -63,7 +63,7 @@ For settings managed by the operator, any changes made outside of the CR YAML fi ## RedisEnterpriseCluster REC -A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances [(shards)]({{}}). +A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. Each node is capable of running multiple Redis instances ([shards]({{}})). {{< image filename="/images/k8s/k8s-node-arch.png">}} From 2ba5f20b374caa2dabf39de650ddf0b13d446195 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:25:25 -0500 Subject: [PATCH 26/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 9cf11b7ca2..ed4930d342 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -67,7 +67,7 @@ A Redis Enterprise cluster is a set of Redis Enterprise nodes pooling resources. {{< image filename="/images/k8s/k8s-node-arch.png">}} -A Redis cluster is created an managed by the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REC configuration file prompt the operator to make changes to the cluster. The REC is required for both standard databases [(REDB)](#redisenterprisedatabase-redb) and Active-Active databases [(REAADB)](#redisenterpriseactiveactivedatabase-reaadb). +A Redis cluster is created and managed by the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REC configuration file prompt the operator to make changes to the cluster. The REC is required for both standard databases ([REDB](#redisenterprisedatabase-redb)) and Active-Active databases ([REAADB](#redisenterpriseactiveactivedatabase-reaadb)). See the [RedisEnterpriseCluster API Reference]({{}}) for a full list of fields and settings. From fc59966c48e460ff6fd18ba4f55044e03fdd4d71 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:25:49 -0500 Subject: [PATCH 27/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index ed4930d342..42182cdef0 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -73,7 +73,7 @@ See the [RedisEnterpriseCluster API Reference]({{}}). +A Redis Enterprise database is a logical entity that manages your entire dataset across multiple Redis instances. A Redis instance is a single-threaded database process ([commonly referred to as a shard]({{}})). Redis databases are created and managed by the [RedisEnterpriseDatabase (REDB)]({{}}) [custom resource (CR)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REDB YAML configuration file prompt the operator to make changes to the database. From 4f30be33f0e5a4810d1a212865b3a9c460207cb4 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:26:09 -0500 Subject: [PATCH 28/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 42182cdef0..39b98bcbca 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -77,7 +77,7 @@ A Redis Enterprise database is a logical entity that manages your entire dataset Redis databases are created and managed by the [RedisEnterpriseDatabase (REDB)]({{}}) [custom resource (CR)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). Changes to the REDB YAML configuration file prompt the operator to make changes to the database. -A database can be managed by an operator in the same namespace, or a different namespace. See ["Flexible deployment"]({{}}) options and ["Manage databases in multiple namespaces"]({{}}) for more information. +An operator can manage a database in the same namespace, or a different namespace. See ["Flexible deployment"]({{}}) options and ["Manage databases in multiple namespaces"]({{}}) for more information. See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) for a full list of fields and settings. From be39384e2e8de7e0d4398173639ebd8def5eaa4c Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:26:27 -0500 Subject: [PATCH 29/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: mich-elle-luna <153109578+mich-elle-luna@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 39b98bcbca..5e713e5785 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -83,7 +83,7 @@ See the [RedisEnterpriseDatabase (REDB) API Reference]({{}}) and [internode encryption]({{}}) via the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec) spec. +Redis Enterprise for Kubernetes uses [secrets](https://kubernetes.io/docs/concepts/configuration/secret/) to manage your cluster credentials, cluster certificates, and client certificates. You can configure [LDAP]({{}}) and [internode encryption]({{}}) using the [RedisEnterpriseCluster (REC)](#redisenterprisecluster-rec) spec. ### REC credentials From bab4d524b41489b7b7178bc4f8d8c86a7e73365f Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:26:45 -0500 Subject: [PATCH 30/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 5e713e5785..969e62947b 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -87,7 +87,7 @@ Redis Enterprise for Kubernetes uses [secrets](https://kubernetes.io/docs/concep ### REC credentials -Redis Enterprise for Kubernetes the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to create a Redis Enterprise cluster. During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. +Redis Enterprise for Kubernetes uses the [RedisEnterpriseCluster (REC)]({{}}) [custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) to create a Redis Enterprise cluster. During creation it generates random credentials for the operator to use. The credentials are saved in a Kubernetes (K8s) [secret](https://kubernetes.io/docs/concepts/configuration/secret/). The secret name defaults to the name of the cluster. See [Manage REC credentials]({{}}) for more details. From 969cfdcc0f08901f5e1652e28e8595bc46c682c5 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com> Date: Wed, 30 Oct 2024 15:27:17 -0500 Subject: [PATCH 31/33] Update content/operate/kubernetes/architecture/_index.md Co-authored-by: andy-stark-redis <164213578+andy-stark-redis@users.noreply.github.com> --- content/operate/kubernetes/architecture/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 969e62947b..214bbd4bd9 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -153,4 +153,4 @@ See the [REAADB API reference]({{}}) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. +To collect metrics data from your databases and Redis Enterprise cluster (REC), you can [connect your Prometheus]({{}}) server to an endpoint exposed on your REC. Redis Enterprise for Kubernetes creates a dedicated service to expose the `prometheus` port (8070) for data collection. A custom resource called `ServiceMonitor` allows the [Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/tree/main/Documentation) to connect to this port and collect data from Redis Enterprise. From b7528c6af2a2b6c18bcfcc39b90b5f69b336a8b0 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Fri, 1 Nov 2024 12:49:41 -0500 Subject: [PATCH 32/33] DOC-4406 --- content/operate/kubernetes/architecture/_index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 214bbd4bd9..6ecd0ce272 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -9,6 +9,7 @@ description: Overview of the architecture and components of Redis Enterprise for hideListLinks: true linkTitle: Architecture weight: 1 +aliases: [operate/platforms/kubernetes/kubernetes-architecture/] --- Redis Enterprise for Kubernetes gives you the speed and durability of [Redis Enterprise](https://redis.io/redis-enterprise/advantages/), with the flexibility and ease of [Kubernetes (K8s)](https://kubernetes.io/). Redis Enterprise for Kubernetes uses the Kubernetes operator pattern and custom controllers to bring the best of Redis Enterprise to the Kubernetes platform. From cff565083a4daac8fbb176f6f935cf151e38a659 Mon Sep 17 00:00:00 2001 From: Kaitlyn Michael Date: Fri, 1 Nov 2024 13:02:18 -0500 Subject: [PATCH 33/33] changes from SME review --- content/operate/kubernetes/architecture/_index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 6ecd0ce272..d2d72f0615 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -130,7 +130,9 @@ The [Active-Active databases](#active-active-databases) require one of above rou ## Services Rigger -The services rigger is responsible for creating and updating services related to database objects. It identifies database objects within the cluster and creates services (by default `cluster_ip` type) to allow access to those databases. By default, the services have the same name as the databases. You can view a list of services with the `kubectl get services` command. +The services rigger is responsible for creating and updating services related to database objects. It identifies database objects within the cluster and creates services in accordance with [`redisEnterpriseCluster.Spec.servicesRiggerSpec` setting]({{}}) to allow access to those databases. By default, each database has two services, a `cluster_ip` Service with the same name as the database and a `headless` Service with the same name as the database suffixed with `-headless`. It also creates other types of Services such as Ingress Services or OpenshiftRoutes (defined in `redisEnterpriseCluster.Spec.ingressOrRouteSpec`) meant to provide access to REAADB objects. + +You can view a list of services with the `kubectl get services` command. Kubernetes is a dynamic environment, with nodes and pods changing as needed. The services rigger monitors the cluster for these changes and updates the database services to ensure reliable communication with the databases.