1.5. 优化 Red Hat build of Keycloak 启动


我们建议优化红帽构建的 Keycloak,以便在生产环境中部署红帽构建的 Keycloak 前更快地提供启动和更好的内存消耗。本节论述了如何应用红帽构建的 Keycloak 优化,以获得最佳性能和运行时行为。

1.5.1. 创建优化的红帽构建的 Keycloak 构建

默认情况下,当您使用 startstart-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 参数。

  1. 使用 build 命令为 PostgreSQL 数据库厂商设置构建选项

    bin/kc.[sh|bat] build --db=postgres
  2. conf/keycloak.conf 文件中为 postgres 设置运行时配置选项。

    db-url-host=keycloak-postgres
    db-username=keycloak
    db-password=change_me
    hostname=mykeycloak.acme.com
    https-certificate-file
  3. 使用优化参数启动服务器

    bin/kc.[sh|bat] start --optimized

您可以使用 build 命令实现大多数启动和运行时行为的优化。另外,通过将 keycloak.conf 文件用作配置源,您可以避免一些启动时需要命令行参数的步骤,如初始化 CLI 本身。因此,服务器启动速度更快。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.