第 5 章 使用自定义红帽构建的 Keycloak 镜像
5.1. Red Hat build of Keycloak 自定义镜像使用 Operator
使用 Keycloak 自定义资源(CR),您可以为红帽构建的 Keycloak 服务器指定自定义容器镜像。
为确保 Operator 和 Operand 的完整兼容性,请确保自定义镜像中使用的红帽构建的 Keycloak 版本与 Operator 的版本一致。
5.1.1. 最佳实践
当使用默认红帽构建的 Keycloak 镜像时,服务器会在每次 Pod 启动时执行成本的重新增加。为避免这种延迟,您可以为自定义镜像提供从镜像构建时间增强内置项。
使用自定义镜像,您还可以在构建容器期间指定 Keycloak 构建时 配置和扩展。
当使用优化的自定义镜像时,需要在 Containerfile 中明确设置 启用了
的选项。
运行状况
的选项和启用了指标
有关如何构建此类镜像的说明,请参阅 在容器中运行红帽构建的 Keycloak。
5.1.2. 提供自定义红帽构建的 Keycloak 镜像
要提供自定义镜像,您可以在 Keycloak CR 中定义 image
字段,如下例所示:
apiVersion: k8s.keycloak.org/v2alpha1 kind: Keycloak metadata: name: example-kc spec: instances: 1 image: quay.io/my-company/my-keycloak:latest http: tlsSecret: example-tls-secret hostname: hostname: test.keycloak.org
使用自定义镜像时,每个构建时间选项都会通过专用字段传递,否则会忽略 additionalOptions
。
Operator 不知道 自定义镜像中指定的任何配置选项。将 Keycloak CR 用于需要 Operator 感知的任何配置,即 TLS 和 HTTP (S)设置在配置服务和探测时反映。
5.1.3. 非优化的自定义镜像
虽然最佳实践是采用预错误的镜像,但如果您想要使用非优化的自定义镜像或构建时间属性,并且仍然有可能使用增强镜像。您只需要将 startOptimized
字段设置为 false
,如下例所示:
apiVersion: k8s.keycloak.org/v2alpha1 kind: Keycloak metadata: name: example-kc spec: instances: 1 image: quay.io/my-company/my-keycloak:latest startOptimized: false http: tlsSecret: example-tls-secret hostname: hostname: test.keycloak.org
请记住,每次开始都会考虑这一点。