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イメージの構築
-
KeycloakのGitリポジトリを確認してください。
-
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イメージの構築
-
KeycloakのGitリポジトリを確認してください。
-
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イメージの構築
-
KeycloakのGitリポジトリを確認してください。
-
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のデバッグを参照してください。