【发布时间】:2019-01-10 09:23:52
【问题描述】:
我正在使用带有一些私有路由的大型单体应用程序。这些私有路由目前由普通的经典 nginx 服务器管理。
我需要将它迁移到 Kubernetes,并且我必须拒绝对这些路由的所有外部访问。我正在使用 GKE 和 AFAIK,私有化路由可以在 nginx-ingress 控制器内完成。
我正在尝试使用 server-sn-p,但它似乎不起作用。 这是当前代码:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
nginx.org/websocket-services: service-ws
nginx.org/server-snippet: |
location /private {
allow 10.100.0.0/16; #Pods IPs
allow 10.200.0.0/16; #Pods IPs
deny all;
}
generation: 3
结果是 /private 路由总是返回 200 而不是 401/403。 我还尝试创建重定向而不是允许/拒绝,并且还获得 200 而不是 301 重定向。
您有什么想法或技巧来完成这项工作吗?
【问题讨论】:
-
也许一个简单的方法是禁止或避免这些路由的入口路径,您是否考虑过将您的私有 ip 列入白名单
-
谢谢!诀窍是前缀不是最新的,正如我在我刚刚写的答案中提到的那样。
标签: kubernetes google-kubernetes-engine nginx-ingress