gpt4 book ai didi

kubernetes - 在 Nginx ingress 中重写 Kubernetes 服务

转载 作者:行者123 更新时间:2023-12-02 11:53:50 25 4
gpt4 key购买 nike

我有多个 API 都在“/api”上监听,还有一个 Web 前端在“/”上监听。

有没有一种方法可以编写入口定义,将路径重写为如下所示?

/api/      -> /api/ on service1
/api2/api/ -> /api/ on service2
/api3/api/ -> /api/ on service3
/ -> / on service4

我知道我可以更改 API 以收听其他内容,但我不想那样做。我知道我也可以将所有内容重写为/api/并让 service3 充当默认值,但将来可能还有其他服务需要路由到其他地方。

我听说您可以使用多个入口,但我不确定这将如何影响性能以及这样做是否是最佳实践。

还有,有没有办法调试哪个路由到哪个服务?

谢谢,詹姆斯

最佳答案

在@Rahman 的帮助下 - 查看其他答案。我已经设法让它与单个入口一起工作。

由于字符数限制,我不得不将此作为附加答案发布。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-name
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
tls:
- secretName: tls-secret
rules:
- host: localhost
http:
paths:
- path: /(api/.*)
backend:
serviceName: service1
servicePort: 80
- path: /api2/(api.*)
backend:
serviceName: service2
servicePort: 80
- path: /api3/(api.*)
backend:
serviceName: service3
servicePort: 80
- path: /(.*)
backend:
serviceName: service4
servicePort: 80

仅供将来遇到此问题的其他人引用,服务 1 是主要 API,服务 2 和 3 是另一个子域下的其他 API,服务 4 是 Web 前端。

关于kubernetes - 在 Nginx ingress 中重写 Kubernetes 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56146076/

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