除錯 Keycloak
透過將除錯器在本機上連線到 minikube 內的 Keycloak,來分析開發期間的問題。在 Minikube 內執行 Keycloak 版本是先決條件。
概觀
Keycloak 的部署預設啟用除錯,並在 minikube 上開啟節點埠 30012
。開發人員使用其本機 IDE,透過 JVM 遠端除錯工作階段連線到 minikube 中執行的 Keycloak 執行個體。
所有埠都指定且未含埠偏移。如果您正在使用組態選項 KC_PORT_OFFSET ,則需要將偏移量新增至埠號。對於埠偏移量 XX (00-26) 和埠號 300YY,產生的埠將為 3XXYY。 |
如何設定
先決條件
-
本機上的 Java IDE,其中包含已簽出的 Keycloak 儲存庫,且與要除錯的 Keycloak 已部署版本相符,或者包含已簽出的提供者儲存庫,該提供者已安裝到開發人員想要除錯的 Keycloak 中。
設定遠端除錯
-
透過在命令列上呼叫
minikube ip
來判斷 minikube 的 IP 位址。 -
使用在上一步中擷取的 IP 位址和埠號
30012
設定遠端除錯的主機名稱。
每次重新建立 minikube 執行個體時,minikube 的 IP 位址都會變更。 |
所有埠都指定且未含埠偏移。如果您正在使用組態選項 KC_PORT_OFFSET ,則需要將偏移量新增至埠號。對於埠偏移量 XX (00-26) 和埠號 300YY,產生的埠將為 3XXYY。 |
假設命令 minikube ip
傳回 192.168.39.39
,請參閱以下 IntelliJ 的範例螢幕擷取畫面。

深入了解 IntelliJ 中的遠端除錯。
遠端除錯 Keycloak 時的注意事項
-
當在 minikube 中執行多個 Keycloak 複本時,IDE 會連線到隨機執行個體。
-
當 Keycloak 執行個體重新啟動時(例如,由於重新部署),IDE 會自動中斷連線,開發人員需要重新啟動除錯工作階段。
-
當建立會暫停所有執行緒的斷點時,也會暫停為 Kubernetes 存活探測提供服務的執行緒。探測最終會逾時,且 Kubernetes 會在除錯工作階段期間意外重新啟動 Keycloak Pod。
請改為建立僅暫停目前執行緒的斷點。在 IntelliJ 中,執行此操作的方法是
-
在斷點上按一下滑鼠右鍵。
-
針對目前的斷點進行調整。
-
然後將其設定為所有未來斷點的預設值。
-