使用自定义 Keycloak 镜像

如何自定义和优化 Keycloak 容器

带有操作员的 Keycloak 自定义镜像

使用 Keycloak 自定义资源 (CR),您可以为 Keycloak 服务器指定一个自定义容器镜像。

为了确保操作员和操作对象的完全兼容性,请确保自定义镜像中使用的 Keycloak 版本与操作员的版本一致。

最佳实践

当使用默认的 Keycloak 镜像时,服务器将在每次 Pod 启动时执行昂贵的重新增强操作。为了避免这种延迟,您可以在镜像构建时提供一个内置增强功能的自定义镜像。

使用自定义镜像,您还可以指定 Keycloak 的构建时配置和扩展,这些配置和扩展在容器构建期间完成。

当使用优化的自定义镜像时,需要在 Containerfile 中显式设置health-enabledmetrics-enabled选项。

有关如何构建此类镜像的说明,请参阅 在容器中运行 Keycloak

提供自定义 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传递的任何构建时选项都会被忽略。
操作员不知道自定义镜像中指定的任何配置选项。对于需要操作员感知的任何配置,请使用 Keycloak CR,即在配置服务和探测时反映的 TLS 和 HTTP(S) 设置。

非优化的自定义镜像

虽然使用预增强镜像被认为是最佳实践,但如果您想使用非优化的自定义镜像或带有增强镜像的构建时属性,这仍然是可能的。您只需要将startOptimzed字段设置为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

请记住,这将在每次启动时产生重新增强的成本。

在本页上