問題的產生
對于我們的容器化部署專案keycloak來說,當它從云端負載均衡LB直接通過 NodePort轉發到keycloak時,沒有任務問題,一切正常;缺點就是,運維人員要維護一大批埠,哪個埠對應哪個服務,非常容易出亂子,

問題的解決
只要你不放棄,任何問題都可以解決,前提是不要走死胡同,因為你的方式可能是錯誤的,需要多嘗試,
- 所以,我們找到了不需要配置很多不同埠的方法,就是使用k8s-ingress來解決這個問題,我們用的是ingress/nginx,事實上,ingress也可以選擇Treafik、Nginx、HAProxy、Istio,Kong等等集成的,
- 最開始,在接入ingress時,非keycloak的服務,如springboot,springcloud這些應用,通過ingress進行轉發是沒有任何問題的、如keycloak在接入ingress時,出現了https加載http資源問題,包含登錄表單的地址,也都是http的,沒有被重寫成https,中途找了很多方法,包含修改源代碼,但后來覺得修改原始碼風險太大,而且一個一個坑下來使我改變了主意,還是在goole和keycloak issue上找到了更好的答案,架構如圖:

k8s編排中添加環境變數
env:
- name: PROXY_ADDRESS_FORWARDING #接收反向代碼的Forwarded-For
value: "true"
- name: KEYCLOAK_FRONTEND_URL #解決ingress處理http地址問題
value: "https://final.test.com/auth"
作者:倉儲大叔,張占嶺,
榮譽:微軟MVP
QQ:853066980
支付寶掃一掃,為大叔打賞!

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/544892.html
標籤:其他
上一篇:風險洞察之事件總線的探索與演進
