使用 PostgreSQL 儲存空間
Keycloak 的部署可以使用 PostgreSQL 實例。
啟用 PostgreSQL 儲存空間
可以使用 PostgreSQL 資料庫來儲存正在運行的 Keycloak 實例的資料。 可以透過 provision/kubernetes
資料夾中 .env
檔案的下列設定啟用。
使用下列設定來啟用 PostgreSQL
KC_DATABASE=postgres
如需所有組態選項的清單,請參閱自訂部署。
每次變更後,重新執行 task
命令,將變更套用至 minikube 實例。Task 將觸發必要的指令碼,並使用最少的步驟來更新 minikube。不需要執行 rebuild.sh
:它會銷毀整個實例,並需要更長的時間才能完成。
部署會將新的 PostgreSQL Pod 新增至 minikube 設定,並移除不再需要的所有其他儲存 Pod。每次重新啟動 Pod 時,資料庫都會被清除。
Keycloak 連線至 minikube 內的 PostgreSQL 資料庫 Pod,並填入 DB 結構描述。資料庫指標可在 Grafana 中取得。SQL Pad 允許透過瀏覽器存取資料庫。
將本機應用程式連線至 PostgreSQL
PostgreSQL 的資料庫埠也可用作節點埠,以便可以從本機應用程式存取。假設命令 minikube ip
傳回 192.168.39.39
,則 JDBC URL 為 jdbc:postgresql://192.168.39.39:30009/keycloak
。
每次重新建立 minikube 實例時,minikube 的 IP 位址都會變更。 |
例如,它可以用來將開發人員的 IDE 連線至資料庫。
連線詳細資訊:埠一律為 30009
,使用者名稱為 keycloak
,密碼為 pass
,資料庫名稱為 keycloak
。
所有埠均在沒有埠偏移的情況下指定。如果您使用組態選項 KC_PORT_OFFSET ,則需要將偏移量新增至埠號。對於埠偏移量 XX (00-26) 和埠號 300YY,產生的埠將為 3XXYY。 |
在命令列上連線至資料庫
若要在 PostgreSQL 容器內啟動 SQL Shell,請使用下列命令
kubectl exec `kubectl get pods --selector=app=postgres -n keycloak -o name` -n keycloak -it -- psql --user keycloak
來自 PostgresSQL 資料庫的指標
在 minikube 中執行 postgres_exporter 的實例,並且其指標會收集在 Prometheus 中。
可以在 pgexporter-queries.yaml 中定義其他用於指標的 SQL 查詢。