7.3. 特定的健康检查


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

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

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

curl -s https://keycloak:managementport/health

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

curl -s https://keycloak-load-balancer-url/lb-check

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

curl -s https://keycloak_site_a_url/lb-check
curl -s https://keycloak_site_b_url/lb-check

7.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

与前面的健康检查不同,以下健康检查需要 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'

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

7.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'

7.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'

7.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>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.