diff --git a/content/operate/kubernetes/active-active/_index.md b/content/operate/kubernetes/active-active/_index.md index 2853823307..dc77e649e7 100644 --- a/content/operate/kubernetes/active-active/_index.md +++ b/content/operate/kubernetes/active-active/_index.md @@ -29,7 +29,7 @@ Versions 6.4.2-6 or later fully support the Active-Active controller. Some of th This setup method includes the following steps: -1. Gather REC credentials and [prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters.md" >}}). +1. Gather REC credentials and [prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters" >}}). 2. Create [`RedisEnterpriseRemoteCluster` (RERC)]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-rerc" >}}) resources. 3. Create [`RedisEnterpriseActiveActiveDatabase` (REAADB)]({{< relref "/operate/kubernetes/active-active/create-reaadb#create-reaadb" >}}) resource. @@ -48,7 +48,7 @@ For versions 6.4.2 or earlier, this Active-Active setup method includes the foll [Active-Active]({{< relref "/operate/rs/databases/active-active/" >}}) databases give you read-and-write access to Redis Enterprise clusters (REC) in different Kubernetes clusters or namespaces. Active-Active deployments managed by the Redis Enterprise operator require two additional custom resources: Redis Enterprise Active-Active database (REAADB) and Redis Enterprise remote cluster (RERC). -To create an Active-Active Redis Enterprise deployment for Kubernetes with these new features, first [prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters.md" >}}) then [create an Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb.md" >}}). +To create an Active-Active Redis Enterprise deployment for Kubernetes with these new features, first [prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters" >}}) then [create an Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}). ### Preview versions diff --git a/content/operate/kubernetes/active-active/create-aa-crdb-cli.md b/content/operate/kubernetes/active-active/create-aa-crdb-cli.md index 92d50424bf..c5e9864e9e 100644 --- a/content/operate/kubernetes/active-active/create-aa-crdb-cli.md +++ b/content/operate/kubernetes/active-active/create-aa-crdb-cli.md @@ -10,7 +10,7 @@ description: This section shows how to set up an Active-Active Redis Enterprise linkTitle: Create Active-Active with crdb-cli weight: 99 --- -{{}} Versions 6.4.2 and later support the Active-Active database controller. This controller allows you to create Redis Enterprise Active-Active databases (REAADB) and Redis Enterprise remote clusters (RERC) with custom resources. We recommend using the [REAADB method for creating Active-Active databases]({{< relref "/operate/kubernetes/active-active/create-reaadb.md" >}}).{{}} +{{}} Versions 6.4.2 and later support the Active-Active database controller. This controller allows you to create Redis Enterprise Active-Active databases (REAADB) and Redis Enterprise remote clusters (RERC) with custom resources. We recommend using the [REAADB method for creating Active-Active databases]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}).{{}} 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/" >}}). @@ -26,9 +26,9 @@ This process consists of: Before creating Active-Active databases, you'll need admin access to two or more working Kubernetes clusters that each have: -- Routing for external access with an [ingress resources]({{< relref "/operate/kubernetes/networking/ingress.md" >}}) (or [route resources]({{< relref "/operate/kubernetes/networking/routes.md" >}}) on OpenShift). +- Routing for external access with an [ingress resources]({{< relref "/operate/kubernetes/networking/ingress" >}}) (or [route resources]({{< relref "/operate/kubernetes/networking/routes" >}}) on OpenShift). - A working [Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/reference/redis_enterprise_cluster_api" >}}) with a unique name. -- Enough memory resources available for the database (see [hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}})). +- Enough memory resources available for the database (see [hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}})). {{}} The `activeActive` field and the `ingressOrRouteSpec` field cannot coexist in the same REC. If you configured your ingress via the `ingressOrRouteSpec` field in the REC, create your Active-Active database with the RedisEnterpriseActiveActiveDatabase (REAADB) custom resource.{{}} @@ -69,7 +69,7 @@ You'll need to create DNS aliases to resolve your API hostname ``, - Description: Combined with database name to create the Active-Active database hostname - Format: string - Example value: `-cluster.ijk.example.com` -- [**REC admin credentials**]({{< relref "/operate/kubernetes/security/manage-rec-credentials.md" >}}) ` `: +- [**REC admin credentials**]({{< relref "/operate/kubernetes/security/manage-rec-credentials" >}}) ` `: - Description: Admin username and password for the REC stored in a secret - Format: string - Example value: username: `user@example.com`, password: `something` @@ -99,7 +99,7 @@ From inside your K8s cluster, edit your Redis Enterprise cluster (REC) resource ### Using ingress controller -1. If your cluster uses an [ingress controller]({{< relref "/operate/kubernetes/networking/ingress.md" >}}), add the following to the `spec` section of your REC resource file. +1. If your cluster uses an [ingress controller]({{< relref "/operate/kubernetes/networking/ingress" >}}), add the following to the `spec` section of your REC resource file. Nginx: @@ -146,7 +146,7 @@ HAproxy: #### If using Istio Gateway and VirtualService -No changes are required to the REC spec if you are using [Istio]({{< relref "/operate/kubernetes/networking/istio-ingress.md" >}}) in place of an ingress controller. The `activeActive` section added above creates ingress resources. The two custom resources used to configure Istio (Gateway and VirtualService) replace the need for ingress resources. +No changes are required to the REC spec if you are using [Istio]({{< relref "/operate/kubernetes/networking/istio-ingress" >}}) in place of an ingress controller. The `activeActive` section added above creates ingress resources. The two custom resources used to configure Istio (Gateway and VirtualService) replace the need for ingress resources. {{}} These custom resources are not controlled by the operator and will need to be configured and maintained manually. @@ -173,7 +173,7 @@ For each cluster, verify the VirtualService resource has two `- match:` blocks i 1. Make sure you have DNS aliases for each database that resolve your API hostname ``,``, `` to the route IP address. To avoid entering multiple DNS records, you can use a wildcard in your alias (such as `*.ijk.example.com`). -1. If your cluster uses [OpenShift routes]({{< relref "/operate/kubernetes/networking/routes.md" >}}), add the following to the `spec` section of your Redis Enterprise cluster (REC) resource file. +1. If your cluster uses [OpenShift routes]({{< relref "/operate/kubernetes/networking/routes" >}}), add the following to the `spec` section of your Redis Enterprise cluster (REC) resource file. ```sh activeActive: diff --git a/content/operate/kubernetes/active-active/create-reaadb.md b/content/operate/kubernetes/active-active/create-reaadb.md index 49011af454..15adbc8939 100644 --- a/content/operate/kubernetes/active-active/create-reaadb.md +++ b/content/operate/kubernetes/active-active/create-reaadb.md @@ -16,18 +16,18 @@ weight: 30 To create an Active-Active database, make sure you've completed all the following steps and have gathered the information listed below each step. -1. Configure the [admission controller and ValidatingWebhook]({{< relref "/operate/kubernetes/deployment/quick-start.md#enable-the-admission-controller/" >}}). +1. Configure the [admission controller and ValidatingWebhook]({{< relref "/operate/kubernetes/deployment/quick-start#enable-the-admission-controller/" >}}). {{}}These are installed and enabled by default on clusters created via the OpenShift OperatorHub. {{}} -2. Create two or more [RedisEnterpriseCluster (REC) custom resources]({{< relref "/operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) with enough [memory resources]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}). +2. Create two or more [RedisEnterpriseCluster (REC) custom resources]({{< relref "/operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) with enough [memory resources]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). * Name of each REC (``) * Namespace for each REC (``) -3. Configure the REC [`ingressOrRoutes` field]({{< relref "/operate/kubernetes/networking/ingressorroutespec.md" >}}) and [create DNS records]({{< relref "/operate/kubernetes/networking/ingressorroutespec#configure-dns/" >}}). +3. Configure the REC [`ingressOrRoutes` field]({{< relref "/operate/kubernetes/networking/ingressorroutespec" >}}) and [create DNS records]({{< relref "/operate/kubernetes/networking/ingressorroutespec#configure-dns/" >}}). * REC API hostname (`api--.`) * Database hostname suffix (`-db--.`) -4. [Prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters.md" >}}) +4. [Prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters" >}}) * RERC name (`) * RERC secret name (`redis-enterprise-`) diff --git a/content/operate/kubernetes/active-active/edit-clusters.md b/content/operate/kubernetes/active-active/edit-clusters.md index 995e707d46..680581dba7 100644 --- a/content/operate/kubernetes/active-active/edit-clusters.md +++ b/content/operate/kubernetes/active-active/edit-clusters.md @@ -18,7 +18,7 @@ Use the following steps to add a participating cluster to an existing Redis Ente ### Prerequisites -To prepare the Redis Enterprise cluster (REC) to participate in an Active-Active database, perform the following tasks from [Prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters.md" >}}): +To prepare the Redis Enterprise cluster (REC) to participate in an Active-Active database, perform the following tasks from [Prepare participating clusters]({{< relref "/operate/kubernetes/active-active/prepare-clusters" >}}): - Make sure the cluster meets the hardware and naming requirements. - Enable the Active-Active controllers. diff --git a/content/operate/kubernetes/active-active/global-db-secret.md b/content/operate/kubernetes/active-active/global-db-secret.md index 76d361a3c5..fcac77dc43 100644 --- a/content/operate/kubernetes/active-active/global-db-secret.md +++ b/content/operate/kubernetes/active-active/global-db-secret.md @@ -16,7 +16,7 @@ weight: 50 One of the fields available for `globalConfigurations` is `databaseSecretName` which can point to a secret containing the database password. To set the database secret name and sync the data to all participating clusters, follow the steps below. -To edit other global configruations, see [global configuration]({{< relref "/operate/kubernetes/active-active/global-config.md" >}}) +To edit other global configruations, see [global configuration]({{< relref "/operate/kubernetes/active-active/global-config" >}}) 1. On an existing participating cluster, generate a YAML file containing the database secret with the database password. diff --git a/content/operate/kubernetes/active-active/prepare-clusters.md b/content/operate/kubernetes/active-active/prepare-clusters.md index a62bd3eb6c..02bf7d59c6 100644 --- a/content/operate/kubernetes/active-active/prepare-clusters.md +++ b/content/operate/kubernetes/active-active/prepare-clusters.md @@ -17,13 +17,13 @@ weight: 10 Before you prepare your clusters to participate in an Active-Active database, make sure you've completed all the following steps and have gathered the information listed below each step. -1. Configure the [admission controller and ValidatingWebhook]({{< relref "/operate/kubernetes/deployment/quick-start.md#enable-the-admission-controller/" >}}). +1. Configure the [admission controller and ValidatingWebhook]({{< relref "/operate/kubernetes/deployment/quick-start#enable-the-admission-controller/" >}}). -2. Create two or more [RedisEnterpriseCluster (REC) custom resources]({{< relref "/operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) with enough [memory resources]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}). +2. Create two or more [RedisEnterpriseCluster (REC) custom resources]({{< relref "/operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) with enough [memory resources]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). * Name of each REC (``) * Namespace for each REC (``) -3. Configure the REC [`ingressOrRoutes` field]({{< relref "/operate/kubernetes/networking/ingressorroutespec.md" >}}) and [create DNS records]({{< relref "/operate/kubernetes/networking/ingressorroutespec#configure-dns/" >}}). +3. Configure the REC [`ingressOrRoutes` field]({{< relref "/operate/kubernetes/networking/ingressorroutespec" >}}) and [create DNS records]({{< relref "/operate/kubernetes/networking/ingressorroutespec#configure-dns/" >}}). * REC API hostname (`api--.`) * Database hostname suffix (`-db--.`) @@ -140,7 +140,7 @@ To communicate with other clusters, all participating clusters will need access ## Next steps -Now you are ready to [create your Redis Enterprise Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb.md" >}}). +Now you are ready to [create your Redis Enterprise Active-Active database]({{< relref "/operate/kubernetes/active-active/create-reaadb" >}}). ## Example values diff --git a/content/operate/kubernetes/architecture/_index.md b/content/operate/kubernetes/architecture/_index.md index 4a13f354bd..c7fb95a5e3 100644 --- a/content/operate/kubernetes/architecture/_index.md +++ b/content/operate/kubernetes/architecture/_index.md @@ -95,7 +95,7 @@ See [Manage REC credentials]({{}}) for more details. +See [Manage REC certificates]({{}}) for more details. ### Client certificates @@ -123,7 +123,7 @@ By default, Kubernetes doesn't allow you to access your Redis database from outs - 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. +- OpenShift uses [routes]({{< relref "/operate/kubernetes/networking/routes" >}}) to route external traffic. The [Active-Active databases](#active-active-databases) require one of above routing methods to be configured in the REC with the [ingressOrRouteSpec field]({{}}). diff --git a/content/operate/kubernetes/architecture/deployment-options.md b/content/operate/kubernetes/architecture/deployment-options.md index 536b2695cf..dab7d66b52 100644 --- a/content/operate/kubernetes/architecture/deployment-options.md +++ b/content/operate/kubernetes/architecture/deployment-options.md @@ -20,13 +20,13 @@ The Redis Enterprise cluster (REC) custom resource must reside in the same names ## Single REC and single namespace (one-to-one) -The standard and simplest deployment deploys your Redis Enterprise databases (REDB) in the same namespace as the Redis Enterprise cluster (REC). No additional configuration is required for this, since there is no communication required to cross namespaces. See [Deploy Redis Enterprise for Kubernetes]({{< relref "/operate/kubernetes/deployment/quick-start.md" >}}). +The standard and simplest deployment deploys your Redis Enterprise databases (REDB) in the same namespace as the Redis Enterprise cluster (REC). No additional configuration is required for this, since there is no communication required to cross namespaces. See [Deploy Redis Enterprise for Kubernetes]({{< relref "/operate/kubernetes/deployment/quick-start" >}}). {{< image filename="/images/k8s/k8s-deploy-one-to-one.png" >}} ## Single REC and multiple namespaces (one-to-many) -Multiple Redis Enterprise databases (REDB) spread across multiple namespaces within the same K8s cluster can be associated with the same Redis Enterprise cluster (REC). See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/re-clusters/multi-namespace.md" >}}) for more information. +Multiple Redis Enterprise databases (REDB) spread across multiple namespaces within the same K8s cluster can be associated with the same Redis Enterprise cluster (REC). See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/re-clusters/multi-namespace" >}}) for more information. {{< image filename="/images/k8s/k8s-deploy-one-to-many.png" >}} @@ -36,7 +36,7 @@ A single Kubernetes cluster can contain multiple Redis Enterprise clusters (REC) You have the flexibility to create databases in separate namespaces, or in the same namespace as the REC, or combine any of the supported deployment options above. This configuration is geared towards use cases that require multiple Redis Enterprise clusters with greater isolation or different cluster configurations. -See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/re-clusters/multi-namespace.md" >}}) for more information. +See [Manage databases in multiple namespaces]({{< relref "/operate/kubernetes/re-clusters/multi-namespace" >}}) for more information. {{< image filename="/images/k8s/k8s-deploy-many-to-many.png" >}} diff --git a/content/operate/kubernetes/deployment/container-images.md b/content/operate/kubernetes/deployment/container-images.md index 6f8ce71da8..09a1185782 100644 --- a/content/operate/kubernetes/deployment/container-images.md +++ b/content/operate/kubernetes/deployment/container-images.md @@ -126,7 +126,7 @@ require authentication. If you do need authentication, add a [pull secret](https The operator bundle contains the operator deployment and the reference to the operator image (`redislabs/operator`). To use a private container registry, you must change this image reference in your operator deployment file **before** you deploy the operator. If you apply this change to modify an existing operator deployment, the operator's pod will restart. -In the operator deployment file, 'containers:image' should point to the same repository and tag you used when [pushing]({{< relref "/operate/kubernetes/deployment/container-images.md#push-images-to-a-private-container-registry" >}}) to the private container registry: +In the operator deployment file, 'containers:image' should point to the same repository and tag you used when [pushing]({{< relref "/operate/kubernetes/deployment/container-images#push-images-to-a-private-container-registry" >}}) to the private container registry: ```sh ${PRIVATE_REPO}/redislabs/operator:${OPERATOR_VERSION} diff --git a/content/operate/kubernetes/deployment/helm.md b/content/operate/kubernetes/deployment/helm.md index f0b918ddd8..5c6665dd7f 100644 --- a/content/operate/kubernetes/deployment/helm.md +++ b/content/operate/kubernetes/deployment/helm.md @@ -16,7 +16,7 @@ Helm charts provide a simple way to install the Redis Enterprise for Kubernetes ## Prerequisites -- A [supported distribution]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions.md" >}}) of Kubernetes. +- A [supported distribution]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) of Kubernetes. - At least three worker nodes. - [Kubernetes client (kubectl)](https://kubernetes.io/docs/tasks/tools/). - [Helm 3.10 or later](https://helm.sh/docs/intro/install/). diff --git a/content/operate/kubernetes/deployment/openshift/_index.md b/content/operate/kubernetes/deployment/openshift/_index.md index 68c872cbfa..2505ffda28 100644 --- a/content/operate/kubernetes/deployment/openshift/_index.md +++ b/content/operate/kubernetes/deployment/openshift/_index.md @@ -27,13 +27,13 @@ workloads can use: ## For OpenShift via the OperatorHub -To [create a database on an OpenShift 4.x cluster via the OperatorHub]({{< relref "/operate/kubernetes/deployment/openshift/openshift-operatorhub" >}}) you only need to have the [OpenShift 4.x cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}). +To [create a database on an OpenShift 4.x cluster via the OperatorHub]({{< relref "/operate/kubernetes/deployment/openshift/openshift-operatorhub" >}}) you only need to have the [OpenShift 4.x cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). ## For OpenShift via the CLI -To [create a database on an OpenShift cluster via the CLI]({{< relref "/operate/kubernetes/deployment/openshift/openshift-cli.md" >}}), you need: +To [create a database on an OpenShift cluster via the CLI]({{< relref "/operate/kubernetes/deployment/openshift/openshift-cli" >}}), you need: -1. An [OpenShift cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}). +1. An [OpenShift cluster installed](https://docs.openshift.com/container-platform/4.3/welcome/index.html) with at least three nodes that each meet the [minimum requirements for a development installation]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). 1. The [kubectl package installed](https://kubernetes.io/docs/tasks/tools/install-kubectl/) at version 1.9 or higher 1. The [OpenShift cli installed](https://docs.openshift.com/container-platform/4.2/cli_reference/openshift_cli/getting-started-cli.html) diff --git a/content/operate/kubernetes/deployment/quick-start.md b/content/operate/kubernetes/deployment/quick-start.md index 681ec095c2..fb37c4b766 100644 --- a/content/operate/kubernetes/deployment/quick-start.md +++ b/content/operate/kubernetes/deployment/quick-start.md @@ -17,13 +17,13 @@ To deploy Redis Enterprise Software for Kubernetes and start your Redis Enterpri - Apply the operator bundle and verify it's running. - Create a Redis Enterprise cluster (REC). -This guide works with most supported Kubernetes distributions. If you're using OpenShift, see [Redis Enterprise on OpenShift]({{< relref "/operate/kubernetes/deployment/openshift" >}}). For details on what is currently supported, see [supported distributions]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions.md" >}}). +This guide works with most supported Kubernetes distributions. If you're using OpenShift, see [Redis Enterprise on OpenShift]({{< relref "/operate/kubernetes/deployment/openshift" >}}). For details on what is currently supported, see [supported distributions]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}). ## Prerequisites To deploy Redis Enterprise for Kubernetes, you'll need: -- Kubernetes cluster in a [supported distribution]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions.md" >}}) +- Kubernetes cluster in a [supported distribution]({{< relref "/operate/kubernetes/reference/supported_k8s_distributions" >}}) - minimum of three worker nodes - Kubernetes client (kubectl) - access to DockerHub, RedHat Container Catalog, or a private repository that can hold the required images. @@ -51,7 +51,7 @@ You can use an existing namespace as long as it does not contain any existing Re ## Install the operator -Redis Enterprise for Kubernetes bundle is published as a container image. A list of required images is available in the [release notes]({{< relref "/operate/kubernetes/release-notes/_index.md" >}}) for each version. +Redis Enterprise for Kubernetes bundle is published as a container image. A list of required images is available in the [release notes]({{< relref "/operate/kubernetes/release-notes/_index" >}}) for each version. The operator [definition and reference materials](https://github.com/RedisLabs/redis-enterprise-k8s-docs) are available on GitHub. The operator definitions are [packaged as a single generic YAML file](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/bundle.yaml). @@ -149,7 +149,7 @@ The REC name (`my-rec` in this example) cannot be changed after cluster creation Each cluster must have at least 3 nodes. Single-node RECs are not supported. {{}} - See the [Redis Enterprise hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}) for more information on sizing Redis Enterprise node resource requests. + See the [Redis Enterprise hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}) for more information on sizing Redis Enterprise node resource requests. 1. Apply your custom resource file in the same namespace as `my-rec.yaml`. @@ -196,7 +196,7 @@ The admission controller dynamically validates REDB resources configured by the As part of the REC creation process, the operator stores the admission controller certificate in a Kubernetes secret called `admission-tls`. You may have to wait a few minutes after creating your REC to see the secret has been created. -{{< embed-md "k8s-admission-webhook-cert.md" >}} +{{< embed-md "k8s-admission-webhook-cert" >}} ### Limit the webhook to the relevant namespaces {#webhook} @@ -257,4 +257,4 @@ The operator bundle includes a webhook file. The webhook will intercept requests You can create multiple databases within the same namespace as your REC or in other namespaces. -See [manage Redis Enterprise databases for Kubernetes]({{< relref "/operate/kubernetes/re-databases/db-controller.md" >}}) to create a new REDB. +See [manage Redis Enterprise databases for Kubernetes]({{< relref "/operate/kubernetes/re-databases/db-controller" >}}) to create a new REDB. diff --git a/content/operate/kubernetes/networking/_index.md b/content/operate/kubernetes/networking/_index.md index 66da195c66..02a9a59992 100644 --- a/content/operate/kubernetes/networking/_index.md +++ b/content/operate/kubernetes/networking/_index.md @@ -15,7 +15,7 @@ Redis Enterprise for Kubernetes supports several ways to route external traffic - 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. +- OpenShift uses [routes]({{< relref "/operate/kubernetes/networking/routes" >}}) to route external traffic. - The RedisEnterpriseActiveActiveDatabase (REAADB) requires any of the above routing methods to be configured in the RedisEnterpriseCluster (REC) with the `ingressOrRouteSpec` field. ## External routing using Redis Enterprise for Kubernetes @@ -26,13 +26,13 @@ Redis Enterprise supports three [types of services](https://kubernetes.io/docs/c By default, the operator creates a `ClusterIP` type service, which exposes a cluster-internal IP and that can only be accessed from within the K8s cluster. For requests to be routed from outside the K8s cluster, you need an [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) (or [route](https://docs.openshift.com/container-platform/4.12/networking/routes/route-configuration.html) if you are using OpenShift). See [kubernetes.io](https://kubernetes.io/docs/) for more details on [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) and [Ingress controllers](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/). -* To use NGINX or HAProxy Ingress controllers, see [Ingress routing]({{< relref "/operate/kubernetes/networking/ingress.md" >}}). -* To use OpenShift routes, see [OpenShift routes]({{< relref "/operate/kubernetes/networking/routes.md" >}}). -* To use Istio as an Ingress controller, see [Istio Ingress routing]({{< relref "/operate/kubernetes/networking/istio-ingress.md" >}}) +* To use NGINX or HAProxy Ingress controllers, see [Ingress routing]({{< relref "/operate/kubernetes/networking/ingress" >}}). +* To use OpenShift routes, see [OpenShift routes]({{< relref "/operate/kubernetes/networking/routes" >}}). +* To use Istio as an Ingress controller, see [Istio Ingress routing]({{< relref "/operate/kubernetes/networking/istio-ingress" >}}) ## `ingressOrRouteSpec` for Active-Active databases -Versions 6.4.2 or later of Redis Enterprise for Kubernetes include a feature for ingress configuration. The `ingressOrRouteSpec` field is available in the RedisEnterpriseCluster spec to automatically create an Ingress (or route) for the API service and databases (REAADB) on that REC. See [REC external routing]({{< relref "/operate/kubernetes/networking/ingressorroutespec.md" >}}) for more details. +Versions 6.4.2 or later of Redis Enterprise for Kubernetes include a feature for ingress configuration. The `ingressOrRouteSpec` field is available in the RedisEnterpriseCluster spec to automatically create an Ingress (or route) for the API service and databases (REAADB) on that REC. See [REC external routing]({{< relref "/operate/kubernetes/networking/ingressorroutespec" >}}) for more details. This feature only supports automatic Ingress creation for Active-Active databases created and managed with the RedisEnterpriseActiveActiveDatabase (REAADB) custom resource. Use with the standard Redis Enterprise database (REDB) is not currently supported. diff --git a/content/operate/kubernetes/networking/ingress.md b/content/operate/kubernetes/networking/ingress.md index 58e3acb1aa..d629e4d6fb 100644 --- a/content/operate/kubernetes/networking/ingress.md +++ b/content/operate/kubernetes/networking/ingress.md @@ -20,7 +20,7 @@ Before creating an Ingress, you'll need: - [Ingress-NGINX Controller](https://kubernetes.github.io/ingress-nginx/deploy/) - Be sure to use the `kubernetes/ingress-nginx` controller and NOT the `nginxinc/kubernetes-ingress` controller. - [HAProxy Ingress](https://haproxy-ingress.github.io/docs/getting-started/) - - To use Istio for your Ingress resources, see [Configure Istio for external routing]({{< relref "/operate/kubernetes/networking/istio-ingress.md" >}}) + - To use Istio for your Ingress resources, see [Configure Istio for external routing]({{< relref "/operate/kubernetes/networking/istio-ingress" >}}) {{}}Make sure your Ingress controller has `ssl-passthrough`enabled. This is enabled by default for HAProxy, but disabled by default for NGINX. See the [NGINX User Guide](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) for details. {{}} diff --git a/content/operate/kubernetes/networking/ingressorroutespec.md b/content/operate/kubernetes/networking/ingressorroutespec.md index 58d1f6614b..3aa48bd21e 100644 --- a/content/operate/kubernetes/networking/ingressorroutespec.md +++ b/content/operate/kubernetes/networking/ingressorroutespec.md @@ -18,7 +18,7 @@ Redis Enterprise for Kubernetes supports the Ingress controllers below: * [NGINX](https://kubernetes.github.io/ingress-nginx/) * [Istio](https://istio.io/latest/docs/setup/getting-started/) -OpenShift users can use [routes]({{< relref "/operate/kubernetes/networking/routes.md" >}}) instead of an Ingress. +OpenShift users can use [routes]({{< relref "/operate/kubernetes/networking/routes" >}}) instead of an Ingress. Install your chosen Ingress controller, making sure `ssl-passthrough` is enabled. `ssl-passthrough` is turned off by default for NGINX but enabled by default for HAProxy. diff --git a/content/operate/kubernetes/networking/istio-ingress.md b/content/operate/kubernetes/networking/istio-ingress.md index 3854425c7a..129fbf3e75 100644 --- a/content/operate/kubernetes/networking/istio-ingress.md +++ b/content/operate/kubernetes/networking/istio-ingress.md @@ -148,10 +148,10 @@ To configure Istio to work with the Redis Kubernetes operator, we will use two c redis-vs ["redis-gateway"] ["*.istio.k8s.my.example.com"] 3h33m ``` -1. [Deploy the operator]({{< relref "/operate/kubernetes/deployment/quick-start.md" >}}), Redis Enterprise Cluster (REC), and Redis Enterprise Database (REDB) on the same namespace as the gateway and virtual service. +1. [Deploy the operator]({{< relref "/operate/kubernetes/deployment/quick-start" >}}), Redis Enterprise Cluster (REC), and Redis Enterprise Database (REDB) on the same namespace as the gateway and virtual service. ## Test your external access to the database -To [test your external access]({{< relref "/operate/kubernetes/networking/ingress.md" >}}) to the database, you need a client that supports [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) and [SNI](https://en.wikipedia.org/wiki/Server_Name_Indication). +To [test your external access]({{< relref "/operate/kubernetes/networking/ingress" >}}) to the database, you need a client that supports [TLS](https://en.wikipedia.org/wiki/Transport_Layer_Security) and [SNI](https://en.wikipedia.org/wiki/Server_Name_Indication). See [Test your access with Openssl]({{< relref "/operate/kubernetes/networking/ingress#test-your-access-with-openssl" >}}) or [Test your access with Python]({{< relref "/operate/kubernetes/networking/ingress#test-your-access-with-python" >}}) for more info. diff --git a/content/operate/kubernetes/re-clusters/cluster-recovery.md b/content/operate/kubernetes/re-clusters/cluster-recovery.md index 29c49af4d6..8e9f5c6768 100644 --- a/content/operate/kubernetes/re-clusters/cluster-recovery.md +++ b/content/operate/kubernetes/re-clusters/cluster-recovery.md @@ -26,7 +26,7 @@ The Redis Enterprise for Kubernetes automates these recovery steps: ## Prerequisites -- For cluster recovery, the cluster must be [deployed with persistence]({{< relref "/operate/kubernetes/recommendations/persistent-volumes.md" >}}). +- For cluster recovery, the cluster must be [deployed with persistence]({{< relref "/operate/kubernetes/recommendations/persistent-volumes" >}}). ## Recover a cluster @@ -45,4 +45,4 @@ The Redis Enterprise for Kubernetes automates these recovery steps: watch "kubectl describe rec | grep State" ``` -1. To recover the database, see [Recover a failed database]({{< relref "/operate/rs/databases/recover.md" >}}). \ No newline at end of file +1. To recover the database, see [Recover a failed database]({{< relref "/operate/rs/databases/recover" >}}). \ No newline at end of file diff --git a/content/operate/kubernetes/re-clusters/connect-prometheus-operator.md b/content/operate/kubernetes/re-clusters/connect-prometheus-operator.md index 4306968123..4e74fae42b 100644 --- a/content/operate/kubernetes/re-clusters/connect-prometheus-operator.md +++ b/content/operate/kubernetes/re-clusters/connect-prometheus-operator.md @@ -17,7 +17,7 @@ To collect metrics data from your databases and Redis Enterprise cluster (REC), Before connecting Redis Enterprise to Prometheus on your Kubernetes cluster, make sure you've done the following: -- [Deploy Redis Enterprise for Kubernetes]({{< relref "/operate/kubernetes/deployment/quick-start.md" >}}) (version 6.2.10-4 or newer) +- [Deploy Redis Enterprise for Kubernetes]({{< relref "/operate/kubernetes/deployment/quick-start" >}}) (version 6.2.10-4 or newer) - [Deploy the Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md) (version 0.19.0 or newer) - [Create a Redis Enterprise cluster]({{< relref "/operate/kubernetes/deployment/quick-start#create-a-redis-enterprise-cluster-rec" >}}) diff --git a/content/operate/kubernetes/re-clusters/multi-namespace.md b/content/operate/kubernetes/re-clusters/multi-namespace.md index 4efea9e949..ecfa9466ac 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/architecture/deployment-options.md" >}}). +To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/architecture/deployment-options" >}}). {{}} Multi-namespace installations now support Active-Active databases (REAADB) with certain configuration requirements. For details, see [Multi-namespace Active-Active databases](#multi-namespace-active-active-databases). @@ -22,13 +22,13 @@ Multi-namespace installations now support Active-Active databases (REAADB) with ## Prerequisites -Before configuring a multi-namespace deployment, you must have a running [Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/deployment/quick-start.md" >}}). See more information in the [deployment]({{< relref "/operate/kubernetes/deployment/" >}}) section. +Before configuring a multi-namespace deployment, you must have a running [Redis Enterprise cluster (REC)]({{< relref "/operate/kubernetes/deployment/quick-start" >}}). See more information in the [deployment]({{< relref "/operate/kubernetes/deployment/" >}}) section. ## Create role and role binding for managed namespaces Both the operator and the RedisEnterpriseCluster (REC) resource need access to each namespace the REC will manage. For each **managed** namespace, create a `role.yaml` and `role_binding.yaml` file within the managed namespace, as shown in the examples below. -{{}}These will need to be reapplied each time you [upgrade]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster.md" >}}). {{}} +{{}}These will need to be reapplied each time you [upgrade]({{< relref "/operate/kubernetes/upgrade/upgrade-redis-cluster" >}}). {{}} Replace `` with the namespace the REC resides in. Replace `` with your own value (defaults to the REC name). @@ -196,7 +196,7 @@ You can also deploy `RedisEnterpriseActiveActiveDatabase` (REAADB) objects in co To do this: 1. Configure each participating cluster’s operator to watch the relevant consumer namespace. See [multi-namespace operator setup](#update-redis-enterprise-operator-configmap). -2. Ensure all Active-Active prerequisites are met as described in [Configure Active-Active]({{}}). +2. Ensure all Active-Active prerequisites are met as described in [Configure Active-Active]({{}}). 3. In your REAADB custom resource, specify the target consumer namespace using `metadata.namespace`. For each participating cluster, use the `namespace` field under `spec.participatingClusters` to indicate the namespace where the REAADB should be deployed. 4. If you are using a [global database secret]({{}}), deploy the secret in each consumer namespace. diff --git a/content/operate/kubernetes/re-databases/db-controller.md b/content/operate/kubernetes/re-databases/db-controller.md index 7bd8f96a92..f5ef1345be 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/re- 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/architecture/deployment-options.md" >}}). +To learn more about designing a multi-namespace Redis Enterprise cluster, see [flexible deployment options]({{< relref "/operate/kubernetes/architecture/deployment-options" >}}). ## Create a database @@ -118,7 +118,7 @@ Connection information for the database is stored in a Kubernetes [secret](https The name of that secret is stored in the database custom resource. {{}} -Use these steps to connect to your database from within your K8s cluster. To access your database from outside the K8s cluster, set up the [Ingress]({{< relref "/operate/kubernetes/networking/ingress.md" >}}) controller or use OpenShift routes. +Use these steps to connect to your database from within your K8s cluster. To access your database from outside the K8s cluster, set up the [Ingress]({{< relref "/operate/kubernetes/networking/ingress" >}}) controller or use OpenShift routes. {{}} 1. Retrieve the secret name. diff --git a/content/operate/kubernetes/recommendations/persistent-volumes.md b/content/operate/kubernetes/recommendations/persistent-volumes.md index e7fec0eb72..92c2739db1 100644 --- a/content/operate/kubernetes/recommendations/persistent-volumes.md +++ b/content/operate/kubernetes/recommendations/persistent-volumes.md @@ -44,7 +44,7 @@ The REC deployment files in the [Kubernetes documentation](https://github.com/Re omitted, operator allocates five times (5x) the amount of memory (RAM) defined for nodes (see example below), which is the recommended persistent storage size as described in the [Hardware -requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}) article. +requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}) article. To explicitly specify the persistent storage size, use the *volumeSize* property as described in the example above. diff --git a/content/operate/kubernetes/recommendations/sizing-on-kubernetes.md b/content/operate/kubernetes/recommendations/sizing-on-kubernetes.md index 627591125c..156418f264 100644 --- a/content/operate/kubernetes/recommendations/sizing-on-kubernetes.md +++ b/content/operate/kubernetes/recommendations/sizing-on-kubernetes.md @@ -14,7 +14,7 @@ The following article reviews the mechanism and methods available for sizing and scaling a Redis Enterprise cluster deployment. For minimum and recommended sizing, always follow the sizing guidelines -detailed in the [Redis Enterprise hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}). +detailed in the [Redis Enterprise hardware requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). ## Sizing and scaling cluster nodes @@ -114,7 +114,7 @@ Then, apply the file by running: {{< warning >}} When adjusting compute resources, make sure the ratio of persistent volume size and the new memory size are in accordance to the [Hardware -requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements.md" >}}). +requirements]({{< relref "/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements" >}}). Persistent volume claims can be expanded, but not reduced after creation. See [Expand PersistentVolumeClaim (PVC)]({{}}) for details. {{< /warning >}} diff --git a/content/operate/kubernetes/upgrade/_index.md b/content/operate/kubernetes/upgrade/_index.md index 60c6588e9b..4af84dc9df 100644 --- a/content/operate/kubernetes/upgrade/_index.md +++ b/content/operate/kubernetes/upgrade/_index.md @@ -25,7 +25,7 @@ For all other Kubernetes distributions, see [Upgrade Redis Enterprise for Kubern When upgrading, both your Kubernetes version and Redis operator version need to be supported at all times. -{{}}If your current Kubernetes distribution is not [supported]({{}}), upgrade to a supported distribution before upgrading. {{}} +{{}}If your current Kubernetes distribution is not [supported]({{}}), upgrade to a supported distribution before upgrading. {{}} ## RHEL9-based image