{
  "schema_version": 2,
  "id": "operate/kubernetes/faqs",
  "title": "Redis Enterprise for Kubernetes FAQs",
  "url": "https://redis.io/docs/latest/operate/kubernetes/7.4.6/faqs/",
  "summary": "",
  "content": "Here are some frequently asked questions about Redis Enterprise on integration platforms.\n\n## What is an Operator?\n\nAn 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](https://redis.io/docs/latest/operate/kubernetes/architecture/operator).\n\n## Does Redis Enterprise operator support multiple RECs per namespace?\n\nRedis Enterprise for Kubernetes may only deploy a single Redis Enterprise cluster (REC) per [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). Each REC can run multiple databases while maintaining high capacity and performance.\n\n## Do I need to deploy a Redis Enterprise operator per namespace?\n\nYes, one operator per namespace, each managing a single Redis Enterprise cluster.\nEach REC can run multiple databases while maintaining high capacity and performance.\n\n## How can I see the custom resource definitions (CRDs) created for my Redis Enterprise cluster?\n\nRun the following:\n\n```sh\nkubectl get rec\nkubectl describe rec \u003cmy-cluster-name\u003e\n```\n\n## How can I change the Redis Enterprise cluster admin user password?\n\nThe cluster admin user password is created by the operator during the deployment of the Redis Enterprise cluster (REC) and is stored in a Kubernetes [secret](https://kubernetes.io/docs/concepts/configuration/secret/).\n\nSee [Manage REC credentials](https://redis.io/docs/latest/operate/kubernetes/security/manage-rec-credentials) for instructions on changing the admin password.\n\n## How is using Redis Enterprise operator superior to using Helm charts?\n\nWhile [Helm charts](https://helm.sh/docs/topics/charts/) help automate multi-resource deployments, they do not provide the lifecycle management and lack many of the benefits provided by the operator:\n\n- Operators are a K8s standard, while Helm is a proprietary tool\n    - Using operators means better packaging for different Kubernetes deployments and distributions, as Helm is not supported in a straightforward way everywhere\n- Operators allow full control over the Redis Enterprise cluster lifecycle\n    - We’ve experienced difficulties managing the state and lifecycle of the application through Helm, as it essentially only allows to determine the resources being deployed, which is a problem when upgrading and evolve the Redis Enterprise Cluster settings\n- Operators support advanced flows which would otherwise require using an additional third party product\n\n## How to connect to the Redis Enterprise cluster user interface\n\nCreate a [port forwarding](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#port-forward) rule to expose the cluster user interface (UI) port. For example, when the default port 8443 is used, run:\n\n```sh\nkubectl port-forward –namespace \u003cnamespace\u003e service/\u003cname\u003e-cluster-ui 8443:8443\n```\n\nConnect to the UI by pointing your browser to `https://localhost:8443`\n\n## How should I size Redis Enterprise cluster nodes?\n\nFor nodes hosting the Redis Enterprise cluster [statefulSet](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/) [pods](https://kubernetes.io/docs/concepts/workloads/pods/), follow the guidelines provided for Redis Enterprise in the [hardware requirements](https://redis.io/docs/latest/operate/rs/installing-upgrading/install/plan-deployment/hardware-requirements).\n\nFor additional information please also refer to [Kubernetes operator deployment – persistent volumes](https://redis.io/docs/latest/operate/kubernetes/recommendations/persistent-volumes).\n\n## How to retrieve the username/password for a Redis Enterprise Cluster?\n\nThe Redis Enterprise cluster stores the username/password of the UI in a K8s [secret](https://kubernetes.io/docs/concepts/configuration/secret/).\n\nFind the secret by retrieving secrets and locating one of type [Opaque](https://kubernetes.io/docs/concepts/workloads/pods/) with a name identical or containing your Redis Enterprise cluster name.\n\nFor example, run:\n\n```sh\nkubectl get secrets\n```\n\nA possible response may look like this:\n\n| NAME | TYPE | DATA | AGE |\n|------|------|------|-----|\n| redis-enterprise-cluster | Opaque | 2 | 5d |\n\nTo retrieve the secret run:\n\n```sh\nkubectl get secret redis-enterprise-cluster -o yaml\n```\n\nA possible response may look like this:\n\n```yaml\napiVersion: v1\ndata:\n  password: Q2h5N1BBY28=\n  username: cmVkaXNsYWJzLnNi\nkind: Secret\nmetadata:\n  creationTimestamp: 2018-09-03T14:06:39Z\n  labels:\n   app: redis-enterprise\n   redis.io/cluster: test\n name: redis-enterprise-cluster\n namespace: redis\n ownerReferences:\n – apiVersion: app.redislabs.com/v1alpha1\n   blockOwnerDeletion: true\n   controller: true\n   kind: RedisEnterpriseCluster\n   name: test\n   uid: 8b247469-c715-11e8-a5d5-0a778671fc2e\n resourceVersion: \"911969\"\n selfLink: /api/v1/namespaces/redis/secrets/redis-enterprise-cluster\n uid: 8c4ff52e-c715-11e8-80f5-02cc4fca9682\ntype: Opaque\n```\n\nNext, decode, for example, the password field. Run:\n\n```sh\necho \"Q2h5N1BBY28=\" | base64 –-decode\n```\n\n\n## How to retrieve the username/password for a Redis Enterprise Cluster through the OpenShift Console?\n\nTo retrieve your password, navigate to the OpenShift management console, select your project name, go to Resources-\u003eSecrets-\u003eyour_cluster_name\n\nRetrieve your password by selecting \"Reveal Secret.\"\n\n![](https://redis.io/docs/latest/images/rs/openshift-password-retrieval.png)\n\n\n## What capabilities, privileges and permissions are defined by the Security Context Constraint (SCC) yaml?\n\nThe `scc.yaml` file is defined like this:\n\n```yaml\nkind: SecurityContextConstraints\napiVersion: security.openshift.io/v1\nmetadata:\n  name: redis-enterprise-scc\nallowPrivilegedContainer: false\nallowedCapabilities:\n  - SYS_RESOURCE\nrunAsUser:\n  type: MustRunAs\n  uid: 1001\nFSGroup:\n  type: MustRunAs\n  ranges: 1001,1001\nseLinuxContext:\n  type: RunAsAny\n```\n\n([latest version on GitHub](https://github.com/RedisLabs/redis-enterprise-k8s-docs/blob/master/openshift/scc.yaml))\n\n([latest version on GitHub](https://github.com/RedisLabs/redis-enterprise-k8s-docs/tags))\n\nThe SYS_RESOURCE capability is required by the Redis Enterprise cluster (REC) container so that REC can set correct out of memory (OOM) scores to its processes inside the container.\nAlso, some of the REC services must be able to increase default resource limits, especially the number of open file descriptors.\n\n\u003e [!NOTE]\n\u003e - Removing NET_RAW blocks 'ping' from being used on the solution containers.\n\u003e - These changes were made as of release 5.4.6-1183 to better align the deployment with container and Kubernetes security best practices:\n\u003e     - The NET_RAW capability requirement in PSP was removed.\n\u003e     - The allowPrivilegeEscalation is set to 'false' by default.\n",
  "tags": ["docs","operate","kubernetes"],
  "last_updated": "0001-01-01T00:00:00Z",
  "children": []
}
