15.2. 流程
15.2.1. Data Grid 集群 复制链接链接已复制到粘贴板!
对于本章的上下文中,site-a
是当前活跃的站点,site-b
是不是 AWS 全局加速器 EndpointGroup 的一部分的离线站点,因此不接收用户请求。
通过增加响应时间和/或资源使用量,传输状态可能会影响 Data Grid 集群性能。
第一步是从离线站点中删除过时的数据。
- 登录到离线站点。
关闭红帽构建的 Keycloak。这将清除所有红帽构建的 Keycloak 缓存,并防止红帽构建的 Keycloak 状态与 Data Grid 不兼容。
当使用红帽构建的 Keycloak Operator 部署红帽构建的 Keycloak 时,请将红帽构建的 Keycloak 实例中的红帽构建的 Keycloak 实例数量改为 0。
使用 Data Grid CLI 工具连接到 Data Grid 集群:
命令:
oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222
oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 它要求输入 Data Grid 集群的用户名和密码。这些凭证是 Deploy Data Grid for HA 中的设置,其使用配置 credentials 部分中的 Data Grid Operator 一章。
输出:
Username: developer Password: [infinispan-0-29897@ISPN//containers/default]>
Username: developer Password: [infinispan-0-29897@ISPN//containers/default]>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意pod 名称取决于 Data Grid CR 中定义的集群名称。连接可通过 Data Grid 集群中的任何 pod 完成。
运行以下命令,将复制从离线站点禁用到活动站点。它可防止访问活动站点的清除请求并删除所有正确的缓存数据。
命令:
site take-offline --all-caches --site=site-a
site take-offline --all-caches --site=site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查复制状态是否为
。
命令:
site status --all-caches --site=site-a
site status --all-caches --site=site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
{ "status" : "offline" }
{ "status" : "offline" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果状态不是
离线
,请重复上一步。警告确保复制
离线
,否则清除数据将清除两个站点。使用以下命令清除离线站点中的所有缓存数据:
命令:
clearcache actionTokens clearcache authenticationSessions clearcache loginFailures clearcache work
clearcache actionTokens clearcache authenticationSessions clearcache loginFailures clearcache work
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这些命令不会打印任何输出。
重新启用从离线站点到活动站点的跨站点复制。
命令:
site bring-online --all-caches --site=site-a
site bring-online --all-caches --site=site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查复制状态为
在线
。命令:
site status --all-caches --site=site-a
site status --all-caches --site=site-a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
{ "status" : "online" }
{ "status" : "online" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,我们已准备好将状态从活动站点转移到离线站点。
- 登录到您的活跃站点
使用 Data Grid CLI 工具连接到 Data Grid 集群:
命令:
oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222
oc -n keycloak exec -it pods/infinispan-0 -- ./bin/cli.sh --trustall --connect https://127.0.0.1:11222
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 它要求输入 Data Grid 集群的用户名和密码。这些凭证是 Deploy Data Grid for HA 中的设置,其使用配置 credentials 部分中的 Data Grid Operator 一章。
输出:
Username: developer Password: [infinispan-0-29897@ISPN//containers/default]>
Username: developer Password: [infinispan-0-29897@ISPN//containers/default]>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意pod 名称取决于 Data Grid CR 中定义的集群名称。连接可通过 Data Grid 集群中的任何 pod 完成。
触发从活动站点到离线站点的状态转移。
命令:
site push-site-state --all-caches --site=site-b
site push-site-state --all-caches --site=site-b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查所有缓存的复制状态是
在线的
。命令:
site status --all-caches --site=site-b
site status --all-caches --site=site-b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
{ "status" : "online" }
{ "status" : "online" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过检查所有缓存的
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 push-site-status --cache=actionTokens site push-site-status --cache=authenticationSessions site push-site-status --cache=loginFailures site push-site-status --cache=work
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查本节中的表 ,了解 Cross-Site Documentation 中的可能状态值。
如果报告错误,请对该特定缓存重复状态传输。
命令:
site push-site-state --cache=<cache-name> --site=site-b
site push-site-state --cache=<cache-name> --site=site-b
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令清除/重置状态
命令:
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出:
"ok" "ok" "ok" "ok"
"ok" "ok" "ok" "ok"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,这个状态包括在离线站点中,可以再次启动 Red Hat build of Keycloak:
- 登录到您的次要站点。
启动红帽构建的 Keycloak。
当使用红帽构建的 Keycloak Operator 部署红帽构建的 Keycloak 时,将红帽构建的 Keycloak 实例中的红帽构建的 Keycloak 实例数量改为原始值。
15.2.2. AWS Aurora 数据库 复制链接链接已复制到粘贴板!
不需要任何操作。
15.2.3. AWS Global Accelerator 复制链接链接已复制到粘贴板!
同步两个站点后,可以安全地按照 Bring 站点在线 中的步骤将之前离线站点重新添加到 Global Accelerator EndpointGroup 中。