gpt4 book ai didi

Kubernetes Keycloak Gatekeeper 坏网关

转载 作者:行者123 更新时间:2023-12-02 11:36:57 24 4
gpt4 key购买 nike

我正在尝试将 ProxyInjector 设置为自动将 keycloak-gateway 注入(inject)任何具有如下注释的容器中,这些容器用于我在 kubernetes 上部署的服务:

"annotations": {
"authproxy.stakater.com/client-id": "bitwarden",
"authproxy.stakater.com/client-secret": "<secret>",
"authproxy.stakater.com/discovery-url": "https://keycloak.example.com/auth/realms/realmname",
"authproxy.stakater.com/enabled": "true",
"authproxy.stakater.com/listen": "127.0.0.1:3000",
"authproxy.stakater.com/redirection-url": "http://127.0.0.1:3000",
"authproxy.stakater.com/source-service-name": "bitwarden",
"authproxy.stakater.com/target-port": "3000",
"authproxy.stakater.com/upstream-url": "http://127.0.0.1:80",
}

这是用于 Kubernetes 中的 bitwardenrs 部署。服务如下:
---
kind: Service
apiVersion: v1
metadata:
name: bitwarden
spec:
selector:
app: bitwarden
ports:
- protocol: TCP
name: bitwarden-http
port: 80
targetPort: 80
- protocol: TCP
name: bitwarden-https
port: 443
targetPort: 443
type: NodePort

我可以通过入口正常访问服务。但是当我在它前面添加注释以进行身份​​验证时,我得到一个 502 bad gateway 错误。

检查 bitwarden pod 日志,我可以看到代理容器成功启动并根据我在此处定义的内容进行代理。但我没有看到任何关于它实际尝试代理任何东西的日志(在那个 pod 中,或者我的 ingress-controller pod 中)。

我做错了什么让它返回 502 吗?

最佳答案

根据文档 here ,authproxy.stakater.com/listen是代理监听的。所以它应该是 0.0.0.0:800.0.0.0:443 .因此,nginx 重定向到服务的每个调用都落在代理容器上。请求通过keycloak验证后。它将重定向到 authproxy.stakater.com/redirection-url 中提到的 url例如https://cool.myweb.app.com (应该可以被keycloak访问)。来自 keycloak 的重定向请求将再次登陆代理容器,但这次经过身份验证并将重定向到 authproxy.stakater.com/upstream-url即您尝试代理的应用程序,例如

Recommended setting is to run proxy on port 80/443 and app on any other port e.g. 3000 etc.

Flow diagram以供进一步引用。

如果您有任何其他问题,请随时在存储库中打开一个问题。
或在 Stakater slack channel 中询问

关于Kubernetes Keycloak Gatekeeper 坏网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57839374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com