Kubernetes 上的 Redis Enterprise 常见问题解答

以下是一些关于集成平台上Redis Enterprise的常见问题。

什么是运算符?

操作符是一个Kubernetes自定义控制器,它扩展了原生K8s API。请参考文章基于Redis Enterprise K8s操作符的部署 – 概述

Redis Enterprise 操作员是否支持每个命名空间多个 REC?

Redis Enterprise for Kubernetes 每个 namespace 只能部署一个 Redis Enterprise 集群 (REC)。每个 REC 可以运行多个数据库,同时保持高容量和高性能。

我是否需要为每个命名空间部署一个Redis Enterprise操作符?

是的,每个命名空间一个操作员,每个操作员管理一个Redis Enterprise集群。 每个REC可以运行多个数据库,同时保持高容量和性能。

如何查看为我的Redis Enterprise集群创建的自定义资源定义(CRDs)?

运行以下内容:

kubectl get rec
kubectl describe rec <my-cluster-name>

如何更改Redis Enterprise集群管理员用户密码?

集群管理员用户密码由操作员在Redis Enterprise集群(REC)部署期间创建,并存储在Kubernetes的secret中。

请参阅管理REC凭证以获取更改管理员密码的说明。

使用Redis Enterprise操作符相比使用Helm图表有何优势?

虽然Helm charts帮助自动化多资源部署,但它们不提供生命周期管理,并且缺乏操作员提供的许多好处:

  • Operators 是 K8s 标准,而 Helm 是专有工具
    • 使用 Operators 意味着为不同的 Kubernetes 部署和发行版提供更好的打包,因为 Helm 并不是在所有地方都直接支持
  • 操作员允许完全控制Redis Enterprise集群的生命周期
    • 我们通过Helm管理应用程序的状态和生命周期时遇到了困难,因为它基本上只允许确定正在部署的资源,这在升级和演进Redis Enterprise集群设置时是一个问题
  • 操作符支持高级流程,否则需要使用额外的第三方产品

如何连接到Redis Enterprise集群用户界面

创建一个端口转发规则以暴露集群用户界面(UI)端口。例如,当使用默认端口8443时,运行:

kubectl port-forward –namespace <namespace> service/<name>-cluster-ui 8443:8443

通过将浏览器指向https://localhost:8443连接到UI

我应该如何调整Redis Enterprise集群节点的大小?

对于托管Redis Enterprise集群statefulSet pods的节点,请遵循硬件要求中为Redis Enterprise提供的指南。

如需更多信息,请参阅Kubernetes operator deployment – persistent volumes

如何检索Redis企业集群的用户名/密码?

Redis Enterprise 集群将 UI 的用户名/密码存储在 K8s secret 中。

通过检索秘密并找到类型为Opaque且名称与您的Redis Enterprise集群名称相同或包含该名称的秘密来找到秘密。

例如,运行:

kubectl get secrets

可能的响应可能如下所示:

名称 类型 数据 年龄
redis-enterprise-cluster 不透明 2 5天

要检索秘密,请运行:

kubectl get secret redis-enterprise-cluster -o yaml

可能的响应可能如下所示:

apiVersion: v1
data:
  password: Q2h5N1BBY28=
  username: cmVkaXNsYWJzLnNi
kind: Secret
metadata:
  creationTimestamp: 2018-09-03T14:06:39Z
  labels:
   app: redis-enterprise
   redis.io/cluster: test
 name: redis-enterprise-cluster
 namespace: redis
 ownerReferences:
 – apiVersion: app.redislabs.com/v1alpha1
   blockOwnerDeletion: true
   controller: true
   kind: RedisEnterpriseCluster
   name: test
   uid: 8b247469-c715-11e8-a5d5-0a778671fc2e
 resourceVersion: “911969”
 selfLink: /api/v1/namespaces/redis/secrets/redis-enterprise-cluster
 uid: 8c4ff52e-c715-11e8-80f5-02cc4fca9682
type: Opaque

接下来,解码,例如,密码字段。运行:

echo "Q2h5N1BBY28=" | base64 –-decode

如何通过OpenShift控制台检索Redis企业集群的用户名/密码?

要检索您的密码,请导航到OpenShift管理控制台,选择您的项目名称,转到资源->机密->您的集群名称

通过选择“显示秘密”来检索您的密码。

安全上下文约束(SCC)yaml定义了哪些能力、特权和权限?

scc.yaml 文件定义如下:

kind: SecurityContextConstraints
apiVersion: security.openshift.io/v1
metadata:
  name: redis-enterprise-scc
allowPrivilegedContainer: false
allowedCapabilities:
  - SYS_RESOURCE
runAsUser:
  type: MustRunAs
  uid: 1001
FSGroup:
  type: MustRunAs
  ranges: 1001,1001
seLinuxContext:
  type: RunAsAny

(GitHub上的最新版本)

(GitHub上的最新版本)

Redis Enterprise集群(REC)容器需要SYS_RESOURCE能力,以便REC能够为其容器内的进程设置正确的内存不足(OOM)分数。 此外,一些REC服务必须能够增加默认的资源限制,特别是打开文件描述符的数量。

Note:
  • 移除NET_RAW会阻止在解决方案容器中使用'ping'。
  • 这些更改是在5.4.6-1183版本中进行的,以更好地使部署与容器和Kubernetes安全最佳实践保持一致:
    • PSP中的NET_RAW能力要求已被移除。
    • 默认情况下,allowPrivilegeEscalation设置为'false'。
RATE THIS PAGE
Back to top ↑