Я бы сказал, что он не будет работать с входом и istio.
Как уже упоминалось здесь
Простые спецификации входа, с хостом, TLS и совпадения на основе точного пути будут работать из коробки без необходимости правил маршрута. Однако обратите внимание, что путь, используемый во входном ресурсе, не должен иметь никакого. символов.
Например, следующий входной ресурс соответствует запросам для хоста example.com с URL-адресом / helloworld.
$ kubectl create -f - <<EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: simple-ingress
annotations:
kubernetes.io/ingress.class: istio
spec:
rules:
- host: example.com
http:
paths:
- path: /helloworld
backend:
serviceName: myservice
servicePort: grpc
EOF
Однако следующее правила не будут работать, потому что они используют регулярные выражения в путях и аннотации ingress.kubernetes.io:
$ kubectl create -f - <<EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: this-will-not-work
annotations:
kubernetes.io/ingress.class: istio
# Ingress annotations other than ingress class will not be honored
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: example.com
http:
paths:
- path: /hello(.*?)world/
backend:
serviceName: myservice
servicePort: grpc
EOF
Я предполагаю, что ваш hello-world работает только из-за одной аннотации, которая входной класс.
Если посмотреть аннотации гавани здесь , возможно, проблема в том, что вы хотите использовать вход с istio.
, но как установить подстановочный знак * в шлеме?
Подстановочный знак здесь делать нечего. Как я уже упоминал в этом ответе , вы можете использовать подстановочные знаки или дополнительные пути, что хорошо сделано. Взгляните на входные дорожки здесь .