Kubernetes进入到不同服务的根路径
我想将主机的某些路径路由到不同的后端 假设我有2个后端服务:Kubernetes进入到不同服务的根路径,kubernetes,nginx-ingress,Kubernetes,Nginx Ingress,我想将主机的某些路径路由到不同的后端 假设我有2个后端服务: 后端一 后端2 所有请求最初都被路由到后端一个,如下例所示 rules: - host: example.com http: paths: - path: / backend: serviceName: backend-one servicePort: 3000 现在,我有了后端两个作为新服务,
- 后端一
- 后端2
后端一个
,如下例所示
rules:
- host: example.com
http:
paths:
- path: /
backend:
serviceName: backend-one
servicePort: 3000
现在,我有了后端两个
作为新服务,它应该为特定路径提供内容,但最重要的是/
(根)页面
因此,我的目标如下:
- 路径
,/
,/abc
,/xyz
,由===>/12345
(新服务)提供服务后端两个
旧服务提供的所有其他服务backend one
路径类型
字段和新的入口类
资源。路径类型
字段允许指定应如何匹配路径。除了
默认的ImplementationSpecific
类型,有新的Exact
和
前缀
路径类型
您可以使用Kubernetes 1.18+实现您想要的功能。使用以下配置:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
rules:
- host: example.com
http:
paths:
# Proxy to backend-two when the request is EXACT the root path
- path: /
pathType: Exact
backend:
serviceName: backend-two
servicePort: 3000
# Proxy specic paths (including subpaths) to backend-two
- path: /abc
pathType: Prefix
backend:
serviceName: backend-two
servicePort: 3000
- path: /xyz
pathType: Prefix
backend:
serviceName: backend-two
servicePort: 3000
- path: /12345
pathType: Prefix
backend:
serviceName: backend-two
servicePort: 3000
# If no rules above match, Proxy to backend-one
- path: /
pathType: Prefix
backend:
serviceName: backend-one
servicePort: 3000
请记住,如果您有多条路径需要处理,您还可以使用来改进入口配置。这太棒了,正是我所需要的!谢谢爱德华多!嗨@AndreiGaspar很高兴它成功了。请注意,在这里说“谢谢”的首选方式是投票选出好的问题和有用的答案(一旦你有足够的声誉这么做),并接受对你提出的任何问题最有用的答案(这也会给你的声誉带来一点提升)。请查看页面,然后