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
使用 Keycloak 自定义资源 (CR),您可以为 Keycloak 服务器指定一个自定义容器镜像。
为了确保操作员和操作对象的完全兼容性,请确保自定义镜像中使用的 Keycloak 版本与操作员的版本一致。 |
当使用默认的 Keycloak 镜像时,服务器将在每次 Pod 启动时执行昂贵的重新增强操作。为了避免这种延迟,您可以在镜像构建时提供一个内置增强功能的自定义镜像。
使用自定义镜像,您还可以指定 Keycloak 的构建时配置和扩展,这些配置和扩展在容器构建期间完成。
当使用优化的自定义镜像时,需要在 Containerfile 中显式设置health-enabled 和metrics-enabled 选项。 |
有关如何构建此类镜像的说明,请参阅 在容器中运行 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
请记住,这将在每次启动时产生重新增强的成本。