管理Redis企业集群(REC)凭据
Redis Enterprise for Kubernetes 使用一个名为 RedisEnterpriseCluster
的自定义资源来创建 Redis Enterprise 集群(REC)。在创建过程中,它会生成随机凭证供操作员使用。这些凭证保存在 Kubernetes (K8s) 的 secret 中。secret 的名称默认为集群的名称。
获取当前用户名和密码
凭据可用于访问Redis Enterprise管理控制台或API。必须使用适当的服务(或端口转发)配置与REC pods的连接。
-
使用
kubectl get secret
命令检查操作员在创建过程中生成的随机用户名和密码。kubectl get secret rec -o jsonpath='{.data}'
该命令输出编码后的密码和用户名,类似于下面的示例。
map[password:MTIzNDU2NzgK username:ZGVtb0BleGFtcGxlLmNvbQo=]
-
使用
echo
命令和上一步的密码解码用户名和密码。echo MTIzNDU2NzgK | base64 --decode
这将以纯文本形式输出密码和用户名。在这个例子中,纯文本密码是
12345678
,用户名是demo@example.com
。
更改Redis Enterprise集群(REC)凭据
更改当前用户名的REC密码
-
访问运行Redis Enterprise集群的pod。
kubectl exec -it <rec-resource-name>-0 bash
-
为现有用户添加新密码。
REC_USER="`cat /opt/redislabs/credentials/username`" \ REC_PASSWORD="`cat /opt/redislabs/credentials/password`" \ curl -k --request POST \ --url https://localhost:9443/v1/users/password \ -u "$REC_USER:$REC_PASSWORD" \ --header 'Content-Type: application/json' \ --data "{\"username\":\"$REC_USER\", \ \"old_password\":\"$REC_PASSWORD\", \ \"new_password\":\"<NEW PASSWORD>\"}"
-
从pod外部更新REC凭证密钥。
-
将现有的用户名保存到文本文件中。
echo -n "<current_username>" > username
-
将新密码保存到文本文件中。
echo -n "<new_password>" > password
-
更新REC凭证密钥。
kubectl create secret generic <cluster_secret_name> \ --from-file=./username \ --from-file=./password --dry-run \ -o yaml kubectl apply -f
-
-
等待五分钟,让所有组件从更新的密钥中读取新密码。如果您过早进行下一步,账户可能会被锁定。
-
再次访问运行Redis Enterprise集群的pod。
kubectl exec -it <rec-resource-name>-0 bash
-
移除之前的密码以确保仅应用新密码。
REC_USER="`cat /opt/redislabs/credentials/username`"; \ REC_PASSWORD="`cat /opt/redislabs/credentials/password`"; \ curl -k --request DELETE \ --url https://localhost:9443/v1/users/password \ -u "$REC_USER:$REC_PASSWORD" \ --header 'Content-Type: application/json' \ --data "{\"username\":\"$REC_USER\", \ \"old_password\":\"<OLD PASSWORD\"}"
注意:K8s 密钥的用户名是 Redis Enterprise 管理控制台上显示的电子邮件。
更改REC用户名和密码
-
Add another admin user 并选择一个新的密码。
-
在您的REC自定义资源规范中的
username
字段中指定新用户名。 -
更新REC凭证密钥:
-
将现有的用户名保存到文本文件中。
echo -n "<current_username>" > username
-
将新密码保存到文本文件中。
echo -n "<new_password>" > password
-
更新REC凭证密钥。
kubectl create secret generic <cluster_secret_name> \ --from-file=./username \ --from-file=./password --dry-run \ -o yaml kubectl apply -f
-
-
等待五分钟,让所有组件从更新的密钥中读取新密码。如果您过早进行下一步,账户可能会被锁定。
-
从集群中删除之前的管理员用户。
在Vault中更新凭据密钥
如果您使用Hashicorp Vault存储您的秘密,请使用以下键值对更新REC凭证的秘密:
username:<desired_username>, password:<desired_password>
有关Vault与Redis Enterprise Cluster集成的更多信息,请参阅Integrating Redis Enterprise for Kubernetes with Hashicorp Vault。