我正在尝试配置 Kubernetes Ingress 资源以使路径不区分大小写。这是我当前的 Ingress 配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: APP
namespace: NAMESPACE
spec:
rules:
- http:
paths:
- path: /Foo
pathType: Prefix
backend:
service:
name: APP
port:
number: 80
上述入口应该适用于 foo、Foo 和 FOO
有没有办法让 Kubernetes Ingress 中的路径不区分大小写?任何帮助将不胜感激。
这是来自 pleshakov 的评论,可能有助于使 kubernetes 入口区分大小写。根据 pleshakov 的说法,这不是内置功能,需要修改模板。
您可以通过修改 Ingress 模板来添加自定义注释:
您需要更换这一行:
location {{$location.Path}} {
用这一行:
location {{if index $.Ingress.Annotations "custom.nginx.org/regex-insensitive-prefix"}}~* ^{{end}}{{$location.Path}} {
然后您将能够在 Ingress 资源中开启不区分大小写的匹配:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cafe-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
custom.nginx.org/regex-insensitive-prefix: "true"
spec:
. . .