Kubernetes Ingress 资源的 pathType
字段用于指定应该如何匹配请求路径。它有三个可选值:Exact
、Prefix
和 ImplementationSpecific
。
Exact
: 精确匹配,只有当请求的路径与定义的路径完全相同时才进行路由。Prefix
: 前缀匹配,如果请求的路径以定义的路径为前缀,则进行路由。ImplementationSpecific
: 此选项告诉 Ingress 控制器使用其实现特定的方式进行路径选择,通常是默认值。
下面是这三种类型的示例:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: example.com
http:
paths:
# 精确匹配 /exact-path 才会被路由到 backend service
- path: /exact-path
pathType: Exact
backend:
service:
name: backend-service
port:
number: 80
# 匹配以 /prefix-path 开头的任何请求都会被路由到 backend service
- path: /prefix-path
pathType: Prefix
backend:
service:
name: backend-service
port:
number: 80
# 使用默认值 ImplementationSpecific 进行路径选择
- path: /
backend:
service:
name: default-backend-service
port:
number: 80
需要注意的是,在不同类型之间进行切换可能会影响路由行为,因此必须谨慎选择路径类型。