3.3. 此设置可以存活的故障
在单一或多个可用区上部署红帽构建的 Keycloak 会对高可用性特征有很大的变化,因此我们会独立考虑这些架构。
3.3.1. 单区 复制链接链接已复制到粘贴板!
| 失败 | 恢复 | RPO1 | RTO2 |
|---|---|---|---|
| 红帽构建的 Keycloak Pod | 在集群中运行多个 Keycloak Pod 的红帽构建。如果一个实例失败,一些传入的请求可能会收到错误消息,或者延迟几秒钟。 | 没有数据丢失 | 少于 30 秒 |
| {Kubernetes} 节点 | 在集群中运行多个 Keycloak Pod 的红帽构建。如果主机节点停止,则该节点上的所有 pod 都将失败,一些传入的请求可能会收到错误消息,或者延迟一段时间(以秒为单位)。 | 没有数据丢失 | 少于 30 秒 |
| 红帽构建的 Keycloak 集群连接 | 如果 {kubernetes} 节点之间的连接丢失,则无法在这些节点上托管的 Keycloak pod 的 Red Hat 构建之间发送数据。传入的请求可能会收到错误消息,或者延迟(以秒为单位)。红帽构建的 Keycloak 最终会从其本地视图中删除无法访问的 pod,并停止向它们发送数据。 | 没有数据丢失 | 秒到分钟 |
表注:
1 个恢复点目标,假设设置的所有部分在发生时都处于健康状态。
2 恢复时间目标。
3.3.2. 多个区 复制链接链接已复制到粘贴板!
| 失败 | 恢复 | RPO1 | RTO2 |
|---|---|---|---|
| 数据库节点3 | 如果写入器实例失败,则数据库可以提升相同或其他区域中的读者实例,使其成为新的写入器。 | 没有数据丢失 | 分钟的秒数(取决于数据库) |
| Red Hat build of Keycloak pod | 在集群中运行多个 Keycloak 实例的红帽构建。如果一个实例失败,一些传入的请求可能会收到错误消息,或者延迟几秒钟。 | 没有数据丢失 | 少于 30 秒 |
| {Kubernetes} 节点 | 在集群中运行多个 Keycloak pod 的红帽构建。如果主机节点停止,则该节点上的所有 pod 都将失败,一些传入的请求可能会收到错误消息,或者延迟一段时间(以秒为单位)。 | 没有数据丢失 | 少于 30 秒 |
| 可用区失败 | 如果一个可用区失败,则该区中托管的 Keycloak pod 的所有红帽构建也会失败。至少部署与可用区相同的红帽构建的 Keycloak 副本数量,应该确保不会丢失数据,停机时间最小,因为存在其他 pod 可用于服务请求。 | 没有数据丢失 | 秒 |
| 连接数据库 | 如果可用区间的连接丢失,同步复制将失败。有些请求可能会收到错误消息,或延迟几秒钟。根据数据库,可能需要手动操作。 | 没有数据丢失3 | 分钟的秒数(取决于数据库) |
| 红帽构建的 Keycloak 集群连接 | 如果 {kubernetes} 节点之间的连接丢失,则无法在这些节点上托管的 Keycloak pod 的 Red Hat 构建之间发送数据。传入的请求可能会收到错误消息,或者延迟(以秒为单位)。红帽构建的 Keycloak 最终会从其本地视图中删除无法访问的 pod,并停止向它们发送数据。 | 没有数据丢失 | 秒到分钟 |
表注:
1 个恢复点目标,假设设置的所有部分在发生时都处于健康状态。
2 恢复时间目标。
3 假设数据库也在多个可用区间复制