我希望可以在其他地方找到我的答案,但是缺乏文档使我急忙寻求帮助:)
我一直以this tutorial为起点。我可以成功地遵循所有步骤。但是,当我修改入口以完成我要完成的工作时,什么也没发生。
本教程让您使用以下.yaml创建入口
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
spec:
backend:
serviceName: nginx
servicePort: 80
我想做的是修改入口,以便它可以利用auth-url annotation,最后我的入口in
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/auth-url: https://someauth.com/path/to/my/auth
spec:
backend:
serviceName: nginx
servicePort: 80
为了使用批注,我发现我需要包括
kubernetes.io/ingress.class: "nginx"
批注以使用适当的入口。基本上,这没有任何作用。我可以访问后端nginx集群,而无需接触我的身份验证。像这些注释甚至不存在。GKE不支持
nginx
入口 Controller 吗?我的Yaml根本有问题吗? gce入口 Controller 是否具有可以完成相同操作的注释?我要完成的工作是:客户端调用我的服务,负载平衡器/代理首先使用外部端点对请求进行身份验证,如果身份验证成功,则代理将调用发送到我的服务(所有操作都没有单个重定向)回复发送给客户端)。基本上nginx auth_request所做的就是我假设这个
auth-url
注释在幕后发挥了作用。谢谢!
最佳答案
GKE有自己的入口 Controller 。它称为GKE入口 Controller 。如果要使用Nginx Ingress Controller,则需要自己进行管理。
看起来auth-url annotation
仅在Nginx Ingress Controller上有效。因此,您必须先运行Nginx Ingress Controller。
有关如何在GKE上执行此操作的信息,请参见this post。
希望能帮助到你。
关于nginx - 带有身份验证网址的Google Kubernetes引擎(GKE)入口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48548880/