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
Redis Enterprise集群(REC)容器需要SYS_RESOURCE能力,以便REC能够为其容器内的进程设置正确的内存不足(OOM)分数。 此外,一些REC服务必须能够增加默认的资源限制,特别是打开文件描述符的数量。
- 移除NET_RAW会阻止在解决方案容器中使用'ping'。
- 这些更改是在5.4.6-1183版本中进行的,以更好地使部署与容器和Kubernetes安全最佳实践保持一致:
- PSP中的NET_RAW能力要求已被移除。
- 默认情况下,allowPrivilegeEscalation设置为'false'。