管理Redis企业集群(REC)凭据

Redis Enterprise for Kubernetes 使用一个名为 RedisEnterpriseCluster 的自定义资源来创建 Redis Enterprise 集群(REC)。在创建过程中,它会生成随机凭证供操作员使用。这些凭证保存在 Kubernetes (K8s) 的 secret 中。secret 的名称默认为集群的名称。

注意:
此过程仅支持操作员版本6.0.20-12及以上。

获取当前用户名和密码

凭据可用于访问Redis Enterprise管理控制台或API。必须使用适当的服务(或端口转发)配置与REC pods的连接。

  1. 使用kubectl get secret命令检查操作员在创建过程中生成的随机用户名和密码。

    kubectl get secret rec -o jsonpath='{.data}'
    

    该命令输出编码后的密码和用户名,类似于下面的示例。

    map[password:MTIzNDU2NzgK username:ZGVtb0BleGFtcGxlLmNvbQo=]
    
  2. 使用echo命令和上一步的密码解码用户名和密码。

    echo MTIzNDU2NzgK | base64 --decode
    

    这将以纯文本形式输出密码和用户名。在这个例子中,纯文本密码是 12345678,用户名是 demo@example.com

更改Redis Enterprise集群(REC)凭据

更改当前用户名的REC密码

  1. 访问运行Redis Enterprise集群的pod

    kubectl exec -it <rec-resource-name>-0 bash
    
  2. 为现有用户添加新密码。

     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>\"}"
    
  3. 从pod外部更新REC凭证密钥。

    1. 将现有的用户名保存到文本文件中。

      echo -n "<current_username>" > username 
      
    2. 将新密码保存到文本文件中。

      echo -n "<new_password>" > password
      
    3. 更新REC凭证密钥。

      kubectl create secret generic <cluster_secret_name> \
        --from-file=./username \
        --from-file=./password --dry-run \
        -o yaml
      kubectl apply -f 
      
  4. 等待五分钟,让所有组件从更新的密钥中读取新密码。如果您过早进行下一步,账户可能会被锁定。

  5. 再次访问运行Redis Enterprise集群的pod。

    kubectl exec -it <rec-resource-name>-0 bash
    
  6. 移除之前的密码以确保仅应用新密码。

    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用户名和密码

  1. 连接到管理控制台

  2. Add another admin user 并选择一个新的密码。

  3. 在您的REC自定义资源规范中的username字段中指定新用户名。

  4. 更新REC凭证密钥:

    1. 将现有的用户名保存到文本文件中。

      echo -n "<current_username>" > username
      
    2. 将新密码保存到文本文件中。

      echo -n "<new_password>" > password
      
    3. 更新REC凭证密钥。

      kubectl create secret generic <cluster_secret_name> \
        --from-file=./username \
        --from-file=./password --dry-run \
        -o yaml
      kubectl apply -f 
      
  5. 等待五分钟,让所有组件从更新的密钥中读取新密码。如果您过早进行下一步,账户可能会被锁定。

  6. 从集群中删除之前的管理员用户。

注意:
操作员在更新REC规范中的用户名和更新密钥之间的时间内可能会记录错误。

在Vault中更新凭据密钥

如果您使用Hashicorp Vault存储您的秘密,请使用以下键值对更新REC凭证的秘密:

username:<desired_username>, password:<desired_password>

有关Vault与Redis Enterprise Cluster集成的更多信息,请参阅Integrating Redis Enterprise for Kubernetes with Hashicorp Vault

RATE THIS PAGE
Back to top ↑