在 Kubernetes 中使用自定义 Keycloak 镜像进行部署
使用自定义镜像(外部注册表或本地构建的镜像)并在 Kubernetes 中运行它。需要先运行一个 在 Minikube 上的 Keycloak 或 在 OpenShift 上的 Keycloak 版本。
概述
根据使用的操作符的不同,它将从 Keycloak 的 Quay.io 注册表中拉取默认镜像。在运行 Keycloak 的夜间操作符时,它使用 Keycloak 的夜间构建版本。特定版本的操作符(例如 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。