创建Active-Active数据库 (REAADB)
先决条件
要创建一个Active-Active数据库,请确保您已完成以下所有步骤,并已收集每个步骤下列出的信息。
-
配置admission controller和ValidatingWebhook。
注意:这些是通过OpenShift OperatorHub创建的集群默认安装并启用的。 -
创建两个或更多RedisEnterpriseCluster (REC) 自定义资源,并确保有足够的内存资源。
- 每个REC的名称 (
<rec-name>
) - 每个REC的命名空间 (
<rec-namespace>
)
- 每个REC的名称 (
-
配置REC的
ingressOrRoutes
字段并创建DNS记录。- REC API 主机名 (
api-<rec-name>-<rec-namespace>.<subdomain>
) - 数据库主机名后缀 (
-db-<rec-name>-<rec-namespace>.<subdomain>
)
- REC API 主机名 (
-
- RERC名称 (
>) - RERC 密钥名称 (
redis-enterprise-
)
- RERC名称 (
有关本文中使用的示例值列表,请参阅示例值部分。
创建 RedisEnterpriseRemoteCluster
资源
-
为每个参与的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参考。
-
从每个RERC自定义资源文件中创建一个Redis Enterprise远程集群。
kubectl create -f <rerc-file>
-
检查您的RERC状态。如果
STATUS
为Active
且SPEC STATUS
为Valid
,则您的配置是正确的。kubectl get rerc <rerc-name>
输出应该看起来类似于:
kubectl get rerc rerc-ohare NAME STATUS SPEC STATUS LOCAL rerc-ohare Active Valid true
如果出现错误,请查看RERC自定义资源事件和Redis Enterprise操作员日志。
创建 RedisEnterpriseActiveActiveDatabase
资源
-
创建一个符合命名要求的
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参考。
-
从REAADB自定义资源文件创建一个Redis Enterprise Active-Active数据库。
kubectl create -f <reaadb-file>
-
检查您的RERC状态。如果
STATUS
为Active
且SPEC STATUS
为Valid
,则您的配置是正确的。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