keycloak~LB到Ingress再到K8s的路径问题

种地  金牌会员 | 2023-2-24 04:57:50 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 810|帖子 810|积分 2430

问题的产生

对于我们的容器化部署项目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编排中添加环境变量
  1. env:
  2.   - name: PROXY_ADDRESS_FORWARDING #接收反向代码的Forwarded-For
  3.     value: "true"
  4.   - name: KEYCLOAK_FRONTEND_URL #解决ingress处理http地址问题
  5.     value: "https://final.test.com/auth"
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

种地

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表