nginx - 带有身份验证网址的Google Kubernetes引擎(GKE)入口

标签 nginx kubernetes google-compute-engine google-kubernetes-engine

我希望可以在其他地方找到我的答案,但是缺乏文档使我急忙寻求帮助:)

我一直以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/

相关文章:

docker - 从 Google Cloud Container Registry 中提取 Docker 镜像时权限被拒绝

nginx - 如何将 vue.js 与 Nginx 一起使用?

php - Nginx和PHP-FPM无法访问/srv/文件夹

kubernetes - 如何在使用 kubeadm 创建的 Kubernetes 集群上备份 etcd - rpc 错误 : code = 13

deployment - 为什么在滚动更新部署甚至缩小复制集时会出现停机

kubernetes - 如何为多个主机生成唯一的配置文件?

javascript - 如果 Web 服务器端口被阻止,如何使用 JavaScript 检查

nginx - 如何设置 2 个不同的容器在 Kubernetes 中的 2 个不同的 DNS 名称上运行?

google-compute-engine - 使用谷歌计算引擎运行 openai gym

networking - 在elasticsearch实例上开启open GCE防火墙进行外部连接