gpt4 book ai didi

具有多个目标重写的 kubernetes 入口

转载 作者:行者123 更新时间:2023-12-04 07:16:10 29 4
gpt4 key购买 nike

通常入口重写目标的工作原理如下:

nginx.ingress.kubernetes.io/rewrite-target: /

这将重写服务名称的目标,因为它们在根目录中。所以如果我有这个:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
rules:
http:
paths:
- path: /
backend:
serviceName: front-main
servicePort: 80
- path: /api
backend:
serviceName: back-main
servicePort: 80

我的服务将像在 / 中一样接收数据.但是,我想为我的服务 front-main发送root /和服务器 back-main发送 /someotherpath/ .我怎样才能做到这一点?

是否有类似以下行的内容?
nginx.ingress.kubernetes.io/rewrite-target: "front-main: / ; back-main: /someotherpath"

我似乎没有在文档中找到答案。

最佳答案

不幸的是,基于免费版 Nginx 的 Ingress 没有该功能。

但是,如果您可以使用 Nginx Plus based Ingress ,你可以通过注解来完成。

这是一个 example来自官方 repo :

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cafe-ingress
annotations:
nginx.org/rewrites: "serviceName=tea-svc rewrite=/;serviceName=coffee-svc rewrite=/beans/"
spec:
rules:
- host: cafe.example.com
http:
paths:
- path: /tea/
backend:
serviceName: tea-svc
servicePort: 80
- path: /coffee/
backend:
serviceName: coffee-svc
servicePort: 80

下面是如何将请求的 URI 发送到 tea-svc 的示例。被重写(注意/tea 请求被重定向到/tea/)。
/tea/ -> /
/tea/abc -> /abc

下面是如何将请求的 URI 发送到 coffee-svc 的示例。被重写(注意/coffee 请求被重定向到/coffee/)。
/coffee/ -> /beans/
/coffee/abc -> /beans/abc

关于具有多个目标重写的 kubernetes 入口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49514702/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com