Keycloak 基准测试 Kubernetes 指南

本文档描述了如何安装 Keycloak 以及 Grafana/Prometheus/Jaeger 监控堆栈。

本文档使用 minikube 运行容器,并使用 Helm 部署容器。 Keycloak 本身使用基于 Java 的 Keycloak Operator 进行部署。 Kubectl 用于在命令行上与 minikube 交互。 安装了 Kubebox,以便在 minikube 中检查容器的最小化 UI。

Keycloak 的 Helm charts 可以配置为仅部署 Keycloak,而无需依赖 PodMonitor 和 ServiceMonitor 依赖项。

此设置有一个可选的 OpenTelemetry (OTEL) 设置,它将收集额外的指标,并将来自 Keycloak 内的跟踪发布到 Jaeger 服务。 这允许测量每个端点的延迟,并跟踪给定 REST 端点执行的数据库语句。 它还会收集 Loki 中所有容器的日志,这些日志可以从 Grafana 查询。

它还包含 Tempo 作为替代的跟踪选项。 虽然跟踪通过 OTEL 成功提交,并且按跟踪 ID 搜索按预期工作,但跟踪搜索(目前为 beta 版)不会返回某些跟踪(例如删除用户)。