无法通过Kong Ingress Controller后面的密钥库访问管理控制台页面

时间:2019-05-07 10:56:48

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

我将80和443端口用于Kong:

    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