16.3. 特定的健康检查


16.3.1. 红帽构建的 Keycloak 负载均衡器和站点

通过负载均衡器和主和备份站点验证红帽构建的 Keycloak 应用程序的健康状况。这样可确保红帽构建的 Keycloak 可访问,且负载平衡机制在不同地理位置或网络位置正常工作。

此命令返回红帽构建的 Keycloak 应用程序连接到其配置数据库的健康状态,从而确认数据库连接的可靠性。此命令仅适用于管理端口,而不可用于外部 URL。在 Kubernetes 设置中,会定期检查子状态 健康/就绪状态 以使 Pod 就绪。

curl -s https://keycloak:managementport/health
Copy to Clipboard Toggle word wrap

此命令验证负载均衡器的 lb-check 端点,并确保红帽构建的 Keycloak 应用程序集群已启动并在运行。

curl -s https://keycloak-load-balancer-url/lb-check
Copy to Clipboard Toggle word wrap

这些命令将在多站点设置中返回红帽构建的 Keycloak 的 Site A 和 Site B 的运行状态。

curl -s https://keycloak_site_a_url/lb-check
curl -s https://keycloak_site_b_url/lb-check
Copy to Clipboard Toggle word wrap

16.3.2. Data Grid Cache 健康状况

检查外部 Data Grid 集群中默认缓存管理器和单个缓存的健康状态。此检查对于红帽构建的 Keycloak 性能和可靠性至关重要,因为 Data Grid 通常用于红帽构建的 Keycloak 部署中的分布式缓存和会话集群。

此命令返回 Data Grid 缓存管理器的整体健康状况,这很有用,因为 Admin 用户不需要提供用户凭证来获取健康状态。

curl -s https://infinispan_rest_url/rest/v2/cache-managers/default/health/status
Copy to Clipboard Toggle word wrap

与前面的健康检查不同,以下健康检查需要 Admin 用户提供 Data Grid 用户凭据,作为请求的一部分,以便了解外部 Data Grid 集群缓存的整体健康状况。

curl -u <infinispan_user>:<infinispan_pwd> -s https://infinispan_rest_url/rest/v2/cache-managers/default/health \
 | jq 'if .cluster_health.health_status == "HEALTHY" and (all(.cache_health[].status; . == "HEALTHY")) then "HEALTHY" else "UNHEALTHY" end'
Copy to Clipboard Toggle word wrap

jq 过滤器是根据单个缓存健康状况计算整体健康状况的一个方便。您还可以选择在没有 jq 过滤器的情况下运行上述命令来查看完整详情。

16.3.3. Data Grid 集群分发

评估 Data Grid 集群的分布健康状况,确保集群节点正确分布数据。此步骤对于缓存层的可扩展性和容错至关重要。

您可以修改 expectedCount 3 参数,以匹配集群中的节点总数,并验证它们是否正常运行。

curl <infinispan_user>:<infinispan_pwd> -s https://infinispan_rest_url/rest/v2/cluster\?action\=distribution \
 | jq --argjson expectedCount 3 'if map(select(.node_addresses | length > 0)) | length == $expectedCount then "HEALTHY" else "UNHEALTHY" end'
Copy to Clipboard Toggle word wrap

16.3.4. 总体,Data Grid 系统健康状况

使用 oc CLI 工具查询 Data Grid 集群的健康状况,以及指定命名空间中的红帽构建的 Keycloak 服务。此全面的检查可确保红帽构建的 Keycloak 部署的所有组件都正常运行,并在 Kubernetes 环境中正确配置。

oc get infinispan -n <NAMESPACE> -o json  \
| jq '.items[].status.conditions' \
| jq 'map({(.type): .status})' \
| jq 'reduce .[] as $item ([]; . + [keys[] | select($item[.] != "True")]) | if length == 0 then "HEALTHY" else "UNHEALTHY: " + (join(", ")) end'
Copy to Clipboard Toggle word wrap

16.3.5. Red Hat build of Keycloak 在 Kubernetes 中就绪

具体来说,检查 Kubernetes 中红帽构建的 Keycloak 部署的就绪度和滚动更新条件,确保红帽构建的 Keycloak 实例完全运行,且不会执行可能会影响可用性的更新。

oc wait --for=condition=Ready --timeout=10s keycloaks.k8s.keycloak.org/keycloak -n <NAMESPACE>
oc wait --for=condition=RollingUpdate=False --timeout=10s keycloaks.k8s.keycloak.org/keycloak -n <NAMESPACE>
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat