创建Active-Active数据库 (REAADB)

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

先决条件

要创建一个Active-Active数据库,请确保您已完成以下所有步骤,并已收集每个步骤下列出的信息。

  1. 配置admission controller和ValidatingWebhook

    注意:
    这些是通过OpenShift OperatorHub创建的集群默认安装并启用的。

  2. 创建两个或更多RedisEnterpriseCluster (REC) 自定义资源,并确保有足够的内存资源

    • 每个REC的名称 (<rec-name>)
    • 每个REC的命名空间 (<rec-namespace>)
  3. 配置REC的ingressOrRoutes字段创建DNS记录

    • REC API 主机名 (api-<rec-name>-<rec-namespace>.<subdomain>)
    • 数据库主机名后缀 (-db-<rec-name>-<rec-namespace>.<subdomain>)
  4. 准备参与的集群

    • RERC名称 (>)
    • RERC 密钥名称 (redis-enterprise-)

有关本文中使用的示例值列表,请参阅示例值部分。

创建 RedisEnterpriseRemoteCluster 资源

  1. 为每个参与的Redis Enterprise集群(REC)创建一个RedisEnterpriseRemoteCluster(RERC)自定义资源文件。

    以下是两个参与集群的RERC资源示例。替换为您自己的值以创建您自己的资源。

    示例 RERC (rerc-ohare) 用于命名空间 ns-illinois 中名为 rec-chicago 的 REC:

    apiVersion: app.redislabs.com/v1alpha1
    kind: RedisEnterpriseRemoteCluster
    metadata:
      name: rerc-ohare
    spec:
      recName: rec-chicago
      recNamespace: ns-illinois
      apiFqdnUrl: api-rec-chicago-ns-illinois.example.com
      dbFqdnSuffix: -db-rec-chicago-ns-illinois.example.com
      secretName: redis-enterprise-rerc-ohare
    

    示例 RERC (rerc-raegan) 用于命名空间 ns-virginia 中名为 rec-arlington 的 REC:

    apiVersion: app.redislabs.com/v1alpha1
    kind: RedisEnterpriseRemoteCluster
    metadata:
      name: rerc-reagan
    spec:
      recName: rec-arlington
      recNamespace: ns-virginia
      apiFqdnUrl: test-example-api-rec-arlington-ns-virginia.example.com
      dbFqdnSuffix: -example-cluster-rec-arlington-ns-virginia.example.com
      secretName: redis-enterprise-rerc-reagan
    

    有关RERC字段的更多详细信息,请参阅RERC API参考

  2. 从每个RERC自定义资源文件中创建一个Redis Enterprise远程集群。

    kubectl create -f <rerc-file>
    
  3. 检查您的RERC状态。如果STATUSActiveSPEC STATUSValid,则您的配置是正确的。

    kubectl get rerc <rerc-name>
    

    输出应该看起来类似于:

    kubectl get rerc rerc-ohare
    
    NAME        STATUS   SPEC STATUS   LOCAL
    rerc-ohare   Active   Valid         true
    

    如果出现错误,请查看RERC自定义资源事件和Redis Enterprise操作员日志。

创建 RedisEnterpriseActiveActiveDatabase 资源

  1. 创建一个符合命名要求的RedisEnterpriseActiveActiveDatabase(REAADB)自定义资源文件,并列出上一步创建的RERC自定义资源的名称。

    命名要求:

    • 少于63个字符
    • 仅包含小写字母、数字或连字符
    • 以字母开头
    • 以字母或数字结尾

    示例 REAADB 名为 reaadb-boeing,链接到名为 rec-chicago 的 REC,包含两个参与集群和一个全局数据库配置,分片数设置为 3:

    apiVersion: app.redislabs.com/v1alpha1
    kind: RedisEnterpriseActiveActiveDatabase
    metadata:
      name: reaadb-boeing
    spec:
      globalConfigurations:
        databaseSecretName: <my-secret>
        memorySize: 200MB
        shardCount: 3
      participatingClusters:
          - name: rerc-ohare
          - name: rerc-reagan
    
    注意:
    在使用shardCount为1创建的Active-Active数据库上,分片功能被禁用。数据库创建后无法启用分片功能。

    有关RERC字段的更多详细信息,请参阅RERC API参考

  2. 从REAADB自定义资源文件创建一个Redis Enterprise Active-Active数据库。

    kubectl create -f <reaadb-file>
    
  3. 检查您的RERC状态。如果STATUSActiveSPEC STATUSValid,则您的配置是正确的。

    kubectl get reaadb <reaadb-name>
    

    输出应该看起来类似于:

    kubectl get reaadb reaadb-boeing
    
    NAME              STATUS   SPEC STATUS   LINKED REDBS   REPLICATION STATUS
    reaadb-boeing     active   Valid                        up             
    

    如果出现错误,请查看REAADB自定义资源事件和Redis Enterprise操作员日志。

示例值

本文使用以下示例值:

示例集群 1

  • REC 名称: rec-chicago
  • REC 命名空间: ns-illinois
  • RERC 名称: rerc-ohare
  • RERC 密钥名称: redis-enterprise-rerc-ohare
  • API 完全限定域名: api-rec-chicago-ns-illinois.example.com
  • 数据库FQDN后缀: -db-rec-chicago-ns-illinois.example.com

示例集群 2

  • REC 名称: rec-arlington
  • REC 命名空间: ns-virginia
  • RERC 名称: rerc-raegan
  • RERC 密钥名称: redis-enterprise-rerc-reagan
  • API 完全限定域名: api-rec-arlington-ns-virginia.example.com
  • 数据库FQDN后缀: -db-rec-arlington-ns-virginia.example.com
RATE THIS PAGE
Back to top ↑