搜索

10.2. 流程

download PDF

10.2.1. Data Grid 集群

对于本章的上下文中,site -A 是主站点,site -B 是次要站点。

当您准备离线站点时,最好禁用该站点的复制。当频道在主站点和次站点之间断开连接时,此操作可防止错误或延迟。

10.2.1.1. 将状态从次要站点传输到主站点的流程

  1. 登录到您的次要站点
  2. 使用 Data Grid CLI 工具连接到 Data Grid 集群:

    命令:

    oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222

    它要求提供 Data Grid 集群的用户名和密码。这些凭证是在配置凭证部分的 带有 Data Grid Operator 的 Deploy Data Grid for HA 一章中设置的。

    输出:

    Username: developer
    Password:
    [infinispan-0-29897@ISPN//containers/default]>

    注意

    pod 名称取决于 Data Grid CR 中定义的集群名称。该连接可以通过 Data Grid 集群中的任何 pod 来完成。

  3. 运行以下命令,禁用到主站点的复制:

    命令:

    site take-offline --all-caches --site=site-a

    输出:

    {
      "offlineClientSessions" : "ok",
      "authenticationSessions" : "ok",
      "sessions" : "ok",
      "clientSessions" : "ok",
      "work" : "ok",
      "offlineSessions" : "ok",
      "loginFailures" : "ok",
      "actionTokens" : "ok"
    }

  4. 检查复制状态是否为 offline

    命令:

    site status --all-caches --site=site-a

    输出:

    {
      "status" : "offline"
    }

    如果状态未 脱机,请重复上一步。

二级站点中的 Data Grid 集群已准备好处理请求,而无需尝试复制到主站点。

10.2.2. AWS Aurora 数据库

假设区域 multi-AZ Aurora 部署,当前写入器实例应与有效的红帽构建的 Keycloak 集群位于同一个区域,以避免跨可用区的延迟和通信。

切换 Aurora 的写器实例会导致短暂的停机时间。在某些部署中,其他站点中的写入器实例可能会接受延迟稍长。因此,这个情况可能会延迟到维护窗口或跳过,具体取决于部署的情况。

要更改写器实例,请运行故障转移。此更改将使数据库在短时间内不可用。红帽构建的 Keycloak 需要重新建立数据库连接。

要将 writer 实例切换到其他 AZ,请运行以下命令:

aws rds failover-db-cluster  --db-cluster-identifier ...

10.2.3. 红帽构建的 Keycloak 集群

不需要任何操作。

10.2.4. Route53

要强制 Route53 将主站点标记为不可用,请编辑 AWS 中的健康检查以指向不存在的路由(健康/关闭)。几分钟后,客户端会注意到更改,流量将逐渐移到次要站点。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.