在 Kubernetes 中部署自訂 Keycloak 映像檔
使用外部登錄檔中的自訂映像檔或在本機建置的映像檔,並在 Kubernetes 中執行。先決條件是已執行 Minikube 上的 Keycloak 或 OpenShift 上的 Keycloak。
概述
根據使用的 Operator,它會從 Keycloak 的 Quay.io 登錄檔提取預設映像檔。當執行 Keycloak 的每日 Operator 時,它會使用 Keycloak 的每日建置版本。特定版本的 Operator (例如 20.0.0) 將會使用 Keycloak 的 20.0.0 版本。
此設定不會在自訂資源中使用 image
屬性,因為這樣會忽略建置時選項和映像檔的重新擴增。相反地,它會使用 podTemplate
中的 image
屬性來覆寫映像檔。此設定應該能讓開發人員更輕鬆地試用他們在本機建置的映像檔。
使用遠端登錄檔中可用的自訂映像檔
若要變更此設定,請編輯環境檔案 .env
以包含以下內容
.env
檔案中的範例條目KC_CONTAINER_IMAGE=quay.io/keycloak/keycloak:20.0.1
為 minikube 建置自訂 Keycloak 映像檔
-
使用
mvn clean install -DskipTests -am -pl quarkus/dist
進行建置,以在資料夾/quarkus/dist/target
中建立keycloak-999.0.0-SNAPSHOT.tar.gz
。 -
設定 Minikube 環境以使用本機建置的映像檔。
.env
檔案中的範例條目KC_CONTAINER_IMAGE=localhost/keycloak:local
若要進一步了解
.env
檔案,請參閱 自訂部署。 -
使用 Podman 或 Docker 建置容器。
當執行 Podman 時cd quarkus/container cp ../dist/target/keycloak-*.tar.gz . podman build --build-arg KEYCLOAK_DIST=$(ls keycloak-*.tar.gz) . -t keycloak:local podman image save keycloak:local | minikube image load --overwrite=true -
當執行 Docker 時cd quarkus/container cp ../dist/target/keycloak-*.tar.gz . eval $(minikube docker-env) docker build --build-arg KEYCLOAK_DIST=$(ls keycloak-*.tar.gz) . -t localhost/keycloak:local
-
照常執行
task
以部署映像檔。task
為 OpenShift 建置自訂 Keycloak 映像檔
-
使用
mvn clean install -DskipTests -am -pl quarkus/dist
進行建置,以在資料夾/quarkus/dist/target
中建立keycloak-999.0.0-SNAPSHOT.tar.gz
。 -
使用 OpenShift 的二進位建置建置容器。
cd quarkus/container cp ../dist/target/keycloak-*.tar.gz . oc project <namespace> # delete build config and imagestream in case they exist from a previous run oc delete buildconfig keycloak || true oc delete imagestream keycloak || true oc new-build --strategy docker --binary --image registry.access.redhat.com/ubi9 --name keycloak --build-arg=KEYCLOAK_DIST=$(ls keycloak-*.tar.gz) oc start-build keycloak --from-dir . --follow
-
設定 OpenShift 環境以使用自訂映像檔。
provision/openshift/.env
檔案中的範例條目KC_CONTAINER_IMAGE=image-registry.openshift-image-registry.svc:5000/<namespace>/keycloak:latest
若要進一步了解
.env
檔案,請參閱 自訂部署。 -
照常執行
task
以部署映像檔。task
為一般 Kubernetes 建置自訂 Keycloak 映像檔
-
使用
mvn clean install -DskipTests -am -pl quarkus/dist
進行建置,以在資料夾/quarkus/dist/target
中建立keycloak-999.0.0-SNAPSHOT.tar.gz
。 -
使用 Podman 或 Docker 建置容器。
在以下範例中,將
quay.io
和quay.io/namespace/repository:tag
取代為您使用的登錄檔和映像檔名稱。當執行 Podman 時cd quarkus/container cp ../dist/target/keycloak-*.tar.gz . IMAGE_NAME=quay.io/namespace/repository:tag podman build --build-arg KEYCLOAK_DIST=$(ls keycloak-*.tar.gz) . -t $IMAGE_NAME podman login quay.io podman push $IMAGE_NAME
當執行 Docker 時cd quarkus/container cp ../dist/target/keycloak-*.tar.gz . IMAGE_NAME=quay.io/namespace/repository:tag docker build --build-arg KEYCLOAK_DIST=$(ls keycloak-*.tar.gz) . -t $IMAGE_NAME docker login quay.io docker push $IMAGE_NAME
-
設定 OpenShift 環境以使用自訂映像檔。
在以下範例中,將
quay.io/namespace/repository:tag
取代為您使用的登錄檔和映像檔名稱。provision/openshift/.env
檔案中的範例條目KC_CONTAINER_IMAGE=quay.io/namespace/repository:tag
若要進一步了解
.env
檔案,請參閱 自訂部署。 -
照常執行
task
以部署映像檔。task
延伸閱讀
部署映像檔後,即可進行偵錯。有關詳細資訊,請參閱 偵錯 Keycloak。