搜索

1.5. 优化红帽构建的 Keycloak 启动

download PDF

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

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

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

  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.