PostgreSQLストレージの使用
Keycloakのデプロイメントは、PostgreSQLインスタンスを使用できます。
PostgreSQLストレージの有効化
PostgreSQLデータベースは、実行中のKeycloakインスタンスのデータを格納するために利用できます。これは、provision/kubernetes
フォルダー内の.env
ファイルで以下の設定を介して有効にできます。
PostgreSQLを有効にするには、以下の設定を使用してください。
KC_DATABASE=postgres
すべての構成オプションのリストについては、デプロイメントのカスタマイズを参照してください。
変更を加えるたびに、task
コマンドを再実行して、変更をminikubeインスタンスに適用します。Taskは必要なスクリプトをトリガーし、最小限の手順でminikubeを更新します。rebuild.sh
を実行する必要はありません。これは完全なインスタンスを破棄し、完了までに非常に時間がかかります。
このデプロイメントは、新しいPostgreSQLポッドをminikubeセットアップに追加し、不要になった他のすべてのストレージポッドを削除します。ポッドが再起動されるたびに、データベースはクリアされます。
Keycloakはminikube内のPostgreSQLデータベースポッドに接続し、DBスキーマを投入します。データベースメトリクスはGrafanaで利用できます。SQL Padを使用すると、ブラウザ経由でデータベースにアクセスできます。
ローカルアプリケーションからPostgreSQLへの接続
PostgreSQLのデータベースポートはノードポートとしても利用できるため、ローカルアプリケーションからアクセスできます。コマンドminikube ip
が192.168.39.39
を返したと仮定すると、JDBC URLはjdbc:postgresql://192.168.39.39:30009/keycloak
です。
minikubeのIPアドレスは、minikubeインスタンスが再作成されるたびに変更されます。 |
これは、たとえば、開発者のIDEをデータベースに接続するために使用できます。
接続の詳細:ポートは常に30009
、ユーザー名はkeycloak
、パスワードはpass
、データベース名はkeycloak
です。
すべてのポートは、ポートオフセットなしで指定されています。構成オプションKC_PORT_OFFSET を使用している場合は、ポート番号にオフセットを追加する必要があります。ポートオフセットXX(00〜26)およびポート番号300YYの場合、結果のポートは3XXYYになります。 |
コマンドラインからのデータベースへの接続
PostgreSQLコンテナ内でSQLシェルを起動するには、次のコマンドを使用します。
kubectl exec `kubectl get pods --selector=app=postgres -n keycloak -o name` -n keycloak -it -- psql --user keycloak
PostgresSQLデータベースからのメトリクス
postgres_exporterのインスタンスがminikubeで実行されており、そのメトリクスはPrometheusで収集されます。
メトリクスのための追加のSQLクエリは、pgexporter-queries.yamlで定義できます。