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_NAMEDockerを実行する場合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のデバッグを参照してください。