1.5. 优化 Red Hat build of Keycloak 启动
我们建议优化红帽构建的 Keycloak,以便在生产环境中部署红帽构建的 Keycloak 前更快地提供启动和更好的内存消耗。本节论述了如何应用红帽构建的 Keycloak 优化,以获得最佳性能和运行时行为。
1.5.1. 创建优化的红帽构建的 Keycloak 构建
默认情况下,当您使用 start
或 start-dev
命令时,红帽构建的 Keycloak 会根据覆盖运行 build
命令。
此 构建
命令为启动和运行时行为执行一组优化。构建过程可能需要几秒钟。特别是在容器化环境中运行红帽构建的 Keycloak (如 Kubernetes 或 OpenShift)时,启动时间非常重要。为避免丢失这一时间,请在启动前明确 运行构建
,如 CI/CD 管道中的独立步骤。
1.5.1.1. 第一步:明确运行构建
要运行 构建
,请输入以下命令:
bin/kc.[sh|bat] build <build-options>
此命令显示 您输入的构建选项
。Red Hat build of Keycloak 可区分运行 build
命令时可以使用的构建选项,这些选项 在启动服务器时可用。
对于红帽构建的 Keycloak 的非优化启动,这种区别没有影响。但是,如果您在启动前运行构建,则 build 命令只能使用一组选项。限制的原因是构建选项被保留至优化的红帽构建的 Keycloak 镜像。例如,出于安全原因,必须保留 db-password
(即配置选项)等凭据的配置。
所有构建选项都以纯文本形式保留。不要将任何敏感数据存储为构建选项。这适用于所有可用的配置源,包括 KeyStore 配置源。因此,我们不推荐将任何构建选项存储在 Java 密钥存储中。另外,当涉及配置选项时,我们建议使用 KeyStore 配置源来存储敏感数据。对于非敏感数据,您可以使用剩余的配置源。
构建选项会在 All configuration with a tool icon 中标记。要查找可用的构建选项,请输入以下命令:
bin/kc.[sh|bat] build --help
示例: 运行构建
以在启动前将数据库设置为 PostgreSQL
bin/kc.[sh|bat] build --db=postgres
1.5.1.2. 第二步:使用 优化
启动红帽构建的 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 本身。因此,服务器启动速度更快。