使用自訂 Keycloak 映像檔

如何自訂和最佳化 Keycloak 容器

使用 Operator 的 Keycloak 自訂映像檔

透過 Keycloak 自訂資源 (CR),您可以為 Keycloak 伺服器指定自訂容器映像檔。

為了確保 Operator 和 Operand 的完全相容性,請務必使自訂映像檔中使用的 Keycloak 發行版本與 Operator 的版本一致。

最佳實務

當使用預設 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 傳遞的每個建置時選項都會被忽略。
Operator 不知道在自訂映像檔中指定的任何組態選項。對於任何需要 Operator 感知組態,請使用 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

請記住,這將導致每次啟動時產生重新擴增的成本。

本頁內容