编辑Active-Active数据库的参与集群

使用Redis Enterprise for Kubernetes向现有Active-Active数据库添加或删除参与集群的步骤。

注意:
此功能在6.4.2-6及更高版本中支持全面可用。其中一些功能在6.4.2-4和6.4.2-5中作为预览提供。请升级到6.4.2-6以获得完整的全面可用功能和错误修复。及更高版本。

添加一个参与集群

按照以下步骤将参与集群添加到现有的Kubernetes Redis Enterprise Active-Active数据库(REAADB)中。

先决条件

为了使Redis Enterprise集群(REC)能够参与Active-Active数据库,请从准备参与集群执行以下任务:

  • 确保集群满足硬件和命名要求。
  • 启用Active-Active控制器。
  • 配置外部路由。
  • 配置 ValidatingWebhookConfiguration

收集REC凭证

为了与其他集群通信,所有参与的集群都需要访问所有其他集群的管理员凭据。

  1. 获取新参与集群的REC凭证密钥。

    kubectl get secret -o yaml <rec-name>
    

    此示例显示了一个名为 rec-boston 的 REC 的管理员凭据密钥:

    apiVersion: v1
    data:
      password: ABcdef12345
      username: GHij56789
    kind: Secret
    metadata:
      name: rec-boston
    type: Opaque
    
  2. 为名为redis-enterprise-的新参与集群创建一个密钥,并添加用户名和密码。

    下面的示例显示了一个名为rerc-logan的远程集群的机密文件。

    apiVersion: v1
    data:
      password: ABcdef12345
      username: GHij56789
    kind: Secret
    metadata:
      name: redis-enterprise-rerc-logan
    type: Opaque
    
  3. 将收集到的密钥文件应用到每个参与的REC上。

    kubectl apply -f <rec-secret-file>
    

如果任何集群的管理员凭据发生变化,请更新并重新将文件应用到所有集群。

创建RERC

  1. 从现有的参与集群之一,为新参与的集群创建一个RedisEnterpriseRemoteCluster (RERC) 自定义资源。

    此示例展示了在命名空间 ns-massachusetts 中名为 rec-boston 的 REC 的 RERC 自定义资源。

    apiVersion: app.redislabs.com/v1alpha1
    kind: RedisEnterpriseRemoteCluster
    metadata:
      name: rerc-logan
    spec:
      recName: rec-boston
      recNamespace: ns-massachusetts
      apiFqdnUrl: test-example-api-rec-boston-ns-massachusetts.example.com
      dbFqdnSuffix: -example-cluster-rec-boston-ns-massachusetts.example.com
      secretName: redis-enterprise-rerc-logan
    
  2. 创建RERC自定义资源。

    kubectl create -f <new-RERC-file>
    
  3. 检查新创建的RERC自定义资源的状态。

    kubectl get rerc <RERC-name>
    

    输出应该看起来像这样:

    NAME        STATUS   SPEC STATUS   LOCAL
    rerc-logan   Active   Valid         true
    

编辑 REAADB 规范

  1. 修补REAADB规范,将新的RERC名称添加到participatingClusters中,用您自己的值替换

    kubectl patch reaadb <reaadb-name> < --type merge --patch '{"spec": {"participatingClusters": [{"name": "<rerc-name>"}]}}'
    
  2. 查看REAADB participatingClusters状态以验证集群是否已添加。

    kubectl get reaadb <reaadb-name> -o=jsonpath='{.status.participatingClusters}'
    

    输出应该看起来像这样:

    [{"id":1,"name":"rerc-ohare"},{"id":2,"name":"rerc-reagan"},{"id":3,"name":"rerc-logan"}]
    

移除参与的集群

  1. 在现有的参与集群上,从REAADB规范的participatingCluster部分中移除所需的集群。

    kubectl edit reaadb <reaadb-name>
    
  2. 在每个其他参与的集群上,验证状态为active,规范状态为Valid,并且集群已被移除。

    kubectl get reaadb <reaadb-name -o=jasonpath=`{.status}`
    

    输出应该看起来像这样:

    {... ,"participatingClusters":[{"id":1,"name":"rerc1"},{"id":2,"name":"rerc2"}],"redisEnterpriseCluster":"rec1","specStatus":"Valid","status":"active"}
    
  3. 在移除的参与集群上,列出集群上的所有REAADB资源以验证它们已被删除。

    kubectl get reaadb -o+jasonpath=`{range.items[*]}{.metadata.name}`
    
RATE THIS PAGE
Back to top ↑