您现在的位置是:首页 >技术教程 >ingress 路径配置中类型exact|prefix|ImplementationSpecific的区别以及配置网站首页技术教程

ingress 路径配置中类型exact|prefix|ImplementationSpecific的区别以及配置

Coder-D 2024-06-17 11:26:57
简介ingress 路径配置中类型exact|prefix|ImplementationSpecific的区别以及配置

Ingress 中 path 的类型有 trois 种:

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

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。