1.5. 优化红帽构建的 Keycloak 启动
我们建议优化红帽构建的 Keycloak,以便在生产环境中部署红帽构建的 Keycloak 前提供更快的启动和更好的内存消耗。本节论述了如何应用红帽构建的 Keycloak 优化,以获得最佳性能和运行时行为。
1.5.1. 创建经过优化的红帽构建的 Keycloak 构建
默认情况下,当使用 start
或 start-dev
命令时,Red Hat build of Keycloak 会在覆盖的原因下运行一个 build
命令。
此 build
命令为启动和运行时行为执行一组优化。构建过程可能需要几秒钟时间。特别是在容器化环境中运行 Keycloak 时,如 Kubernetes 或 OpenShift,启动时间非常重要。为避免丢失这一时间,请在启动前明确 运行构建
,如 CI/CD 管道中的单独步骤。
1.5.1.1. 第一步:明确运行构建
要运行 构建
,请输入以下命令:
bin/kc.[sh|bat] build <build-options>
此命令显示 您输入的构建选项
。红帽构建的 Keycloak 可区分 构建选项,这些选项 可在运行构建命令时以及启动服务器时可用的配置选项。
对于红帽构建的 Keycloak 的非优化启动,这种区别无效。但是,如果您在启动前运行构建,则 build 命令只能使用一组选项。这个限制是因为构建选项被保留到优化的红帽构建的 Keycloak 镜像中。例如,出于安全原因,不能保留 db-password
(这是配置选项)等凭据的配置。
所有构建选项都以纯文本形式保留。不要将任何敏感数据存储为构建选项。这适用于所有可用的配置源,包括 KeyStore Config Source。因此,我们还不建议将任何构建选项存储在 Java 密钥存储中。另外,当涉及配置选项时,我们建议使用 KeyStore Config Source 来存储敏感数据。对于非敏感数据,您可以使用剩余的配置源。
构建选项在 All configuration 中标有工具图标。要查找可用的构建选项,请输入以下命令:
bin/kc.[sh|bat] build --help
示例: 在启动前
运行构建将数据库设置为 PostgreSQL
bin/kc.[sh|bat] build --db=postgres
1.5.1.2. 第二步: 使用 --optimized
启动红帽构建的 Keycloak
构建成功后,您可以启动红帽构建的 Keycloak 并输入以下命令关闭默认的启动行为:
bin/kc.[sh|bat] start --optimized <configuration-options>
--optimized
参数告知红帽构建的 Keycloak 假设已使用已优化的红帽构建的 Keycloak 镜像。因此,红帽构建的 Keycloak 避免在启动时检查并运行构建,从而节省时间。
您可以在启动时输入所有配置选项;这些选项是所有未标记为工具图标的配置中的选项。???
-
如果在启动时找到构建选项,其值等于输入
构建
时使用的值,则该选项会在使用--optimized
参数时静默忽略。 -
如果该选项的值与输入构建时使用的值不同,日志中会出现一个警告,并使用之前构建的值。要使这个值生效,请在启动前运行新构建。
创建优化的构建
以下示例显示了在启动红帽构建的 Keycloak 时创建优化的构建,然后使用 --optimized
参数。
使用 build 命令为 PostgreSQL 数据库供应商设置构建选项
bin/kc.[sh|bat] build --db=postgres
在
conf/keycloak.conf
文件中设置 postgres 的运行时配置选项。db-url-host=keycloak-postgres db-username=keycloak db-password=change_me hostname=mykeycloak.acme.com https-certificate-file
使用优化参数启动服务器
bin/kc.[sh|bat] start --optimized
您可以使用 build
命令,实现对启动和运行时行为的大多数优化。另外,通过使用 keycloak.conf
文件作为配置源,您可以避免在启动时需要命令行参数的一些步骤,如初始化 CLI 本身。因此,服务器可以更快地启动。