我想防止不安全的请求到达我的应用程序运行在GCP GKE与谷歌入口(不是nginx),并尝试使用路径规则来做到这一点。我知道nginx入口可以配置路径使用regex,但我不知道最好的方式来做谷歌入口。现在我只是复制相同的规则,改变路径前缀如下:
spec:
rules:
- http:
paths:
- backend:
service:
name: my-api-service
port:
number: 80
path: /api
pathType: Prefix
- backend:
service:
name: my-api-service
port:
number: 80
path: /auth
pathType: Prefix
- backend:
service:
name: my-api-service
port:
number: 80
path: /admin
pathType: Prefix
有没有更好的办法?
2条答案
按热度按时间cs7cruho1#
本文涵盖了您所寻找的所有内容。由于GKE入口本质上是一个GCP负载均衡器,因此
path
密钥使用url-map
来配置流量并将流量路由到您在配置中指定的位置。正如您在此处所看到的,Path
密钥中不允许使用正则表达式。如果你使用Helm的话,一个选择是使用模板从变量自动生成它。在你的
values.yaml
文件中给定以下变量:然后,在入口YAML定义中,您可以执行以下操作:
sczxawaw2#
在GKE中,路径中不允许使用入口regex,因为它使用
url-map
配置GCP负载平衡器。路径中只允许使用通配符*
。我们不能在路径密钥中使用任何其他通配符。所以你可以这样试试
(或)
您可以使用默认后端服务将流量路由到单个服务,如本文档所示
您可以尝试更改注解,如SO中所述。
还有其他类似的SO SO1SO2。