amazon-web-services - 无法使用 Kong Ingress Controller 后面的 keycloak 访问管理控制台页面

标签 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(带 helm)时,将服务公开为 NodePort 服务而不使用入口和负载均衡器,我能够访问管理控制台页面。

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

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

最佳答案

我可能在一年前遇到过这个问题,我记得那个愚蠢的重定向但我没有使用 Kong Ingress Controller,只是一个普通的 Kong。我面临的问题是 Kong 以非特权用户身份运行并且无法绑定(bind)到低编号端口。所以 Kong 绑定(bind)到 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

关于amazon-web-services - 无法使用 Kong Ingress Controller 后面的 keycloak 访问管理控制台页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56021042/

相关文章:

docker - 在Kubernetes上运行dotnet core 3.0 docker镜像时出错

oauth-2.0 - 根据 Keycloak 生成的 JWT 判断用户是否有权访问特定资源

amazon-web-services - 在数据管道中使用自定义 AMI(使用 s3cmd)

kubernetes - Airflow/k8s : How do I correctly set permissions for DAGs stored in a persistent volume?

amazon-web-services - 使用自定义资源 Lambda 运行爬网程序

kubernetes - 无法在Bare Metal上公开Kubernetes服务 “Localhost”

node.js - 无法将 Keycloak 与 Sails 集成。能够将 Keycloak 与 Express 集成

keycloak - 如何在 Keycloak 资源中添加 HTTP 方法以进行授权(无适配器)

ios - dynamodb,MobileHub 不工作

ios - AWSTaskCompletion() 中的通用参数 'ResultType' 错误