15.2. 流程


15.2.1. Data Grid 集群

对于本章的上下文中,site-a 是当前活跃的站点,site-b 是不是 AWS 全局加速器 EndpointGroup 的一部分的离线站点,因此不接收用户请求。

警告

通过增加响应时间和/或资源使用量,传输状态可能会影响 Data Grid 集群性能。

第一步是从离线站点中删除过时的数据。

  1. 登录到离线站点。
  2. 关闭红帽构建的 Keycloak。这将清除所有红帽构建的 Keycloak 缓存,并防止红帽构建的 Keycloak 状态与 Data Grid 不兼容。

    当使用红帽构建的 Keycloak Operator 部署红帽构建的 Keycloak 时,请将红帽构建的 Keycloak 实例中的红帽构建的 Keycloak 实例数量改为 0。

  3. 使用 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 集群的用户名和密码。这些凭证是 Deploy Data Grid for HA 中的设置,其使用配置 credentials 部分中的 Data Grid Operator 一章。

    输出:

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

    注意

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

  4. 运行以下命令,将复制从离线站点禁用到活动站点。它可防止访问活动站点的清除请求并删除所有正确的缓存数据。

    命令:

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

    输出:

    {
      "authenticationSessions" : "ok",
      "work" : "ok",
      "loginFailures" : "ok",
      "actionTokens" : "ok"
    }

  5. 检查复制状态是否为

    命令:

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

    输出:

    {
      "status" : "offline"
    }

    如果状态不是 离线,请重复上一步。

    警告

    确保复制 离线,否则清除数据将清除两个站点。

  6. 使用以下命令清除离线站点中的所有缓存数据:

    命令:

    clearcache actionTokens
    clearcache authenticationSessions
    clearcache loginFailures
    clearcache work

    这些命令不会打印任何输出。

  7. 重新启用从离线站点到活动站点的跨站点复制。

    命令:

    site bring-online --all-caches --site=site-a

    输出:

    {
      "authenticationSessions" : "ok",
      "work" : "ok",
      "loginFailures" : "ok",
      "actionTokens" : "ok"
    }

  8. 检查复制状态为 在线

    命令:

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

    输出:

    {
      "status" : "online"
    }

现在,我们已准备好将状态从活动站点转移到离线站点。

  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 集群的用户名和密码。这些凭证是 Deploy Data Grid for HA 中的设置,其使用配置 credentials 部分中的 Data Grid Operator 一章。

    输出:

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

    注意

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

  3. 触发从活动站点到离线站点的状态转移。

    命令:

    site push-site-state --all-caches --site=site-b

    输出:

    {
      "authenticationSessions" : "ok",
      "work" : "ok",
      "loginFailures" : "ok",
      "actionTokens" : "ok"
    }

  4. 检查所有缓存的复制状态是 在线的

    命令:

    site status --all-caches --site=site-b

    输出:

    {
      "status" : "online"
    }

  5. 通过检查所有缓存的 push-site-status 命令的输出,等待状态传输完成。

    命令:

    site push-site-status --cache=actionTokens
    site push-site-status --cache=authenticationSessions
    site push-site-status --cache=loginFailures
    site push-site-status --cache=work

    输出:

    {
      "site-b" : "OK"
    }
    {
      "site-b" : "OK"
    }
    {
      "site-b" : "OK"
    }
    {
      "site-b" : "OK"
    }

    检查本节中的表 ,了解 Cross-Site Documentation 中的可能状态值。

    如果报告错误,请对该特定缓存重复状态传输。

    命令:

    site push-site-state --cache=<cache-name> --site=site-b

  6. 使用以下命令清除/重置状态

    命令:

    site clear-push-site-status --cache=actionTokens
    site clear-push-site-status --cache=authenticationSessions
    site clear-push-site-status --cache=loginFailures
    site clear-push-site-status --cache=work

    输出:

    "ok"
    "ok"
    "ok"
    "ok"

现在,这个状态包括在离线站点中,可以再次启动 Red Hat build of Keycloak:

  1. 登录到您的次要站点。
  2. 启动红帽构建的 Keycloak。

    当使用红帽构建的 Keycloak Operator 部署红帽构建的 Keycloak 时,将红帽构建的 Keycloak 实例中的红帽构建的 Keycloak 实例数量改为原始值。

15.2.2. AWS Aurora 数据库

不需要任何操作。

15.2.3. AWS Global Accelerator

同步两个站点后,可以安全地按照 Bring 站点在线 中的步骤将之前离线站点重新添加到 Global Accelerator EndpointGroup 中。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.