无法使用 Kong Ingress Controller 后面的密钥斗篷访问管理控制台页面

Can't access Administration Console page with keycloak behind Kong Ingress Controller

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

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

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

我在这个 link -> https://github.com/codecentric/helm-charts/issues/17

中有关于这个问题的详细信息

我被困在这个问题中,不知道如何解决这个问题。

我可能在一年前遇到过这个问题,我记得那个愚蠢的重定向但我没有使用 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