【问题标题】:Can't access Administration Console page with keycloak behind Kong Ingress Controller无法使用 Kong Ingress Controller 后面的 keycloak 访问管理控制台页面
【发布时间】:2019-05-07 10:56:47
【问题描述】:

我在 Kong Ingress Controller 后面有 Keycloak。 我可以在我的 {url}/auth/ 上看到 keycloak 欢迎页面。但是,当我单击管理控制台时,我被重定向到 {url}:8443/auth/admin/master/console/

当我点击管理控制台时,我应该重定向到 {url}/auth/admin/master/console/

当我在 minikube 上安装 keycloak(带 helm)时,将服务公开为 NodePort 服务,而不使用入口和负载均衡器,我可以访问管理控制台页面。

我在这个链接中有关于这个问题的详细信息 -> https://github.com/codecentric/helm-charts/issues/17

我陷入了困境,不知道如何解决这个问题。

【问题讨论】:

    标签: amazon-web-services kubernetes keycloak kubernetes-helm kong


    【解决方案1】:

    我可能在一年前遇到过这个问题,我记得那个愚蠢的重定向但我没有使用 Kong Ingress Controller,只是一个普通的 Kong。我面临的问题是 Kong 以非特权用户身份运行并且无法绑定到低数量端口。所以 Kong 绑定到 8443 ssl 并将愚蠢的重定向从 443 重定向到 8443。我通常无法解决这个问题并重新发明了轮子。

    我为 Kong 使用了 80 和 443 端口:

        ports:
        - name: kong-proxy
          containerPort: 80
        - name: kong-proxy-ssl
          containerPort: 443
        - name: kong-admin
          containerPort: 8001
        - name: kong-admin-ssl
          containerPort: 8444
    

    然后定义新的端口和功能:

    securityContext:
      capabilities:
        add:
        - NET_BIND_SERVICE
    env:
      - name: KONG_PROXY_LISTEN
        value: 0.0.0.0:80, 0.0.0.0:443 ssl
      - name: KONG_ADMIN_LISTEN
        value: 0.0.0.0:8001, 0.0.0.0:8444 ssl
    

    在那之后,那个愚蠢的重定向消失了。

    希望对您有所帮助。

    更新

    抱歉,忘记提及要使端口 80 和 443 正常工作,我使用这些行构建了自定义 Docker 映像:

    FROM  kong:1.1.1-centos
    RUN chown -R kong:kong /usr/local/kong \
        && setcap 'cap_net_bind_service=+ep' /usr/local/bin/kong \
        && setcap 'cap_net_bind_service=+ep' /usr/local/openresty/nginx/sbin/nginx
    

    【讨论】:

    • 感谢您的及时回复!在我的例子中,我使用 helm 在 kubernetes 中部署了 keycloak 和 kong,并且没有这种选项来配置服务。
    • 编辑Kong图表甚至直接编辑Kong部署有什么问题?看起来很轻松。
    • 是的@Vasily,编辑孔图是一件容易的事。当我第一次阅读您的评论时,我太累了(试图解决问题),以至于我将 kong 图表与 keycloak 图表混淆了。我在 keycloak 图表而不是 kong chart rs 中寻找端口配置。因此,如kong chart 中所述,我将 proxy.http.containerPort 值从 8000 更改为 80,并将 proxy.tls.containerPort 从 8443 更改为 443,但 pod 崩溃(CrashLoopBackOff)。使用 containerPort(8000 和 8443)的默认值,kong 可以正常工作。
    • 您是否也添加了环境变量和securityContext?您可以查看 Kong 日志以了解其崩溃的原因吗?
    • 这是 kong 日志消息:link
    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 2022-01-01
    • 2023-03-19
    • 2014-01-28
    • 2022-07-03
    • 1970-01-01
    • 2022-06-10
    • 2018-02-20
    相关资源
    最近更新 更多