And*_*par 5 kubernetes nginx-ingress
我想将主机的某些路径路由到不同的后端。
假设我有 2 个后端服务:
所有请求backend-one最初都被路由到,如下例所示。
rules:
- host: example.com
http:
paths:
- path: /
backend:
serviceName: backend-one
servicePort: 3000
Run Code Online (Sandbox Code Playgroud)
现在,我有了backend-two新服务,它应该为特定路径提供内容,但最重要的是/(根)页面。
所以,我的目标如下:
/, /abc, /xyz, 。/12345backend-twobackend-one其他一切都由旧服务提供。实现这一目标的最简单方法是什么?
Edu*_*llo 10
根据 Kubernetes CHANGELOG-1.18.md:
在 Kubernetes 1.18 中,Ingress 有两个重要的新增内容:一个新
pathType字段和一个新IngressClass资源。该pathType字段允许指定路径应如何匹配。除了默认ImplementationSpecific类型外,还有新类型Exact和Prefix路径类型。
您可以使用 Kubernetes 1.18+ 和Path 类型来实现您想要的。使用以下配置:
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
Run Code Online (Sandbox Code Playgroud)
请记住,如果您有多个路径需要处理,您还可以使用正则表达式来改进您的 Ingress 配置。
| 归档时间: |
|
| 查看次数: |
7629 次 |
| 最近记录: |