我正在使用ProxyInjector将keycloak-gatekeeper注入到我想限制访问的任何pod中。它的工作方式是我可以限制访问权限,应该访问的用户登录到keycloak之后就可以访问它。
但是我如何让其他“哑巴”(没有自己的身份验证支持的人)的kubernetes服务访问它?当前拒绝它们,因为它们尚未登录,但是这些服务必须相互通信。通过让他们绕过身份验证,或者将服务帐户或其他内容附加到他们的请求中。
编辑:
经过进一步调查,我发现可以通过如下向服务添加另一个端口来访问它:
---
kind: Service
apiVersion: v1
metadata:
name: testservice
spec:
selector:
app: testapp
ports:
- protocol: TCP
name: testapp
port: 8080
targetPort: 8080
- protocol: TCP
name: testapp-backend
port: 8081
targetPort: 8080
通过具有指向端口8080的入口,它将锁定那些试图在群集外部访问该应用程序的应用程序。我还有其他内部服务指向testapp:8081,它们相互连接。
但这只是一个解决方法,因为kubernetes上的任何其他服务都可以尝试连接到testapp:8081
并在没有身份验证的情况下成功,对吧?