第 4 章 高级配置
4.1. 高级配置 复制链接链接已复制到粘贴板!
本章论述了如何使用自定义资源(CR)进行红帽构建的 Keycloak 部署高级配置。
4.1.1. 服务器配置详情 复制链接链接已复制到粘贴板!
许多服务器选项都作为 Keycloak CR 中的第一类统计字段公开。CR 的结构基于红帽构建的 Keycloak 的配置结构。例如,若要配置服务器的 https-port
,请按照 CR 中的类似模式并使用 httpsPort
字段。以下示例是复杂的服务器配置,但演示了服务器选项和 Keycloak CR 之间的关系:
有关选项列表,请参阅 Keycloak CRD。有关配置选项的详情,请查看 所有配置。
4.1.1.1. 其他选项 复制链接链接已复制到粘贴板!
有些专家服务器选项作为 Keycloak CR 中的专用字段不可用。以下是省略的字段示例:
- 需要深入了解底层红帽构建的 Keycloak 实现的字段
- 与 OpenShift 环境无关的字段
- 供应商配置的字段,因为它们是根据使用的供应商实施动态的
Keycloak CR 的 additionalOptions
字段可让红帽构建 Keycloak 以键值对的形式接受任何可用的配置。您可以使用此字段包含 Keycloak CR 中省略的任何选项。有关配置选项的详情,请查看 所有配置。
这些值可以用纯文本字符串或 Secret 对象引用表示,如下例所示:
以这种方式定义的选项名称格式与配置文件中指定的选项的密钥格式相同。有关各种配置格式的详情,请参阅配置红帽构建的 Keycloak。
4.1.2. Secret References 复制链接链接已复制到粘贴板!
secret References 由 Keycloak CR 中的一些专用选项使用,如 tlsSecret
,或作为 additionalOptions
中的值。
与 ConfigMap 引用类似,选项(如 configMapFile
)使用。
在指定 Secret 或 ConfigMap 参考时,请确保包含引用密钥的 Secret 或 ConfigMap 存在于与引用它的 CR 相同的命名空间中。
Operator 大约会每分钟轮询到引用 Secret 或 ConfigMap 的更改。当检测到有意义的更改时,Operator 会执行红帽构建的 Keycloak Deployment 的滚动重启,以获取更改。
4.1.3. 不支持的功能 复制链接链接已复制到粘贴板!
CR 的 unsupported
字段包含没有完全测试且技术预览的高实验性配置选项。
4.1.3.1. Pod 模板 复制链接链接已复制到粘贴板!
Pod 模板是用于 Deployment 模板的原始 API 表示。当您的用例的 CR 顶级不存在支持字段时,此字段是一个临时临时解决方案。
Operator 将提供的模板字段与 Operator 为特定 Deployment 生成的值合并。使用此功能,您可以访问高级别的自定义。但是,不能保证部署可以按预期工作。
以下示例演示了注入标签、注解、卷和卷挂载:
4.1.4. 禁用所需选项 复制链接链接已复制到粘贴板!
红帽构建的 Keycloak 和红帽构建的 Keycloak Operator 提供了最佳生产就绪体验。但是,在开发阶段,您可以禁用关键安全功能。
具体来说,您可以禁用主机名和 TLS,如下例所示:
4.1.5. 资源要求 复制链接链接已复制到粘贴板!
Keycloak CR 允许指定管理红帽构建的 Keycloak 容器 计算资源的
资源选项。它提供通过 Keycloak CR 独立请求和限制资源的功能,以及通过 Realm Import CR 的域导入作业。
如果没有指定值,则默认 请求内存
设置为 1700MiB
,限值
内存设置为 2GiB
。这些值根据红帽构建的 Keycloak 内存管理的更深入分析来选择。
如果没有在 Realm Import CR 中指定值,它将回退到 Keycloak CR 中指定的值,或回退到上面定义的默认值。
您可以根据您的要求指定自定义值,如下所示:
此外,红帽构建的 Keycloak 容器通过提供堆大小的相对值来更有效地管理堆大小。它通过提供某些 JVM 选项来实现。
如需了解更多详细信息,请参阅 在容器中运行红帽构建的 Keycloak。
4.1.6. truststores 复制链接链接已复制到粘贴板!
如果您需要提供可信证书,Keycloak CR 提供了顶级功能来配置服务器的信任存储,如 配置可信证书 中所述。
使用 Keycloak spec 的 truststores 小节来指定包含 PEM 编码文件的 Secret,或使用扩展名 .p12
或 .pfx
的 PKCS12 文件,例如:
其中 my-secret 的内容可以是 PEM 文件,例如:
在 Kubernetes 或 OpenShift 环境中自动包含可信证书已知位置时。这包括 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt 和 /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt (如果存在)。