Ingress 中 path 的类型有 trois 种:

exact: 精确匹配路径。如 path: /foo,只匹配请求路径与之完全相同的 /foo。prefix: 前缀匹配路径。如 path: /foo,匹配请求路径以 /foo 开始的所有路径,如 /foo、/foo/bar 等。ImplementationSpecific: 特定 Ingress controller 的匹配方式。如 Nginx Ingress controller 忽略路径类型,作为前缀匹配路径处理。 这三种类型的使用情况如下:

exact 路径 当需要请求路径与 Ingress 路径完全匹配时使用,例如:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: test-ingress

spec:

rules:

- http:

paths:

- path: /foo

pathType: exact

backend:

serviceName: foo-svc

servicePort: 80

这只会匹配请求路径完全为 /foo 的请求。 2. prefix 路径 当需要匹配请求路径的前缀时使用,例如:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: test-ingress

spec:

rules:

- http:

paths:

- path: /foo

pathType: prefix

backend:

serviceName: foo-svc

servicePort: 80

这会匹配请求路径为 /foo、/foo/bar、/foo/baz 等以 /foo 开始的所有路径。 3. ImplementationSpecific 路径 当需要使用 Ingress controller 特定的路径匹配机制时使用,例如 Nginx Ingress controller 会将其作为前缀匹配路径,所以:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: test-ingress

spec:

rules:

- http:

paths:

- path: /foo

pathType: ImplementationSpecific

backend:

serviceName: foo-svc

servicePort: 80

对于 Nginx Ingress controller 来说与 prefix 类型相同,会匹配 /foo、/foo/bar、/foo/baz 等路径。 所以路径类型主要根据你的匹配需求来选择,如果要精确匹配就选择 exact,要前缀匹配就选择 prefix 或 ImplementationSpecific 等

精彩内容

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。