У меня есть вход Kubernetes, который я хочу использовать по умолчанию для всех путей на множестве хостов, при условии, что нет более конкретного соответствия:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: default-ing
spec:
rules:
- host: host1.sub.example.com
http:
paths:
- backend:
serviceName: my-default-service
servicePort: http
# Note: here we specify the root path intended as a default
path: /
- backend:
serviceName: my-default-service
servicePort: http
path: /route/path/to/default
Второй вход определяет пользовательскую службу дляконкретный путь:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: special-ing
spec:
rules:
- host: host1.sub.example.com
http:
paths:
- backend:
serviceName: special-service
servicePort: http
path: /special
Я ожидаю, что порядок добавления / удаления входов не будет иметь значения, или, по крайней мере, я мог бы иметь какой-то способ указать, что path: /
в default-ing
всегдабудет заказан последним.
Когда я попробую выше, маршрутизация в порядке, пока я добавляю special-ing
до default-ing
(или, альтернативно, добавьте default-ing
, затем special-ing
, затем удалитеdefault-ing
и добавьте его снова).Когда я добавляю их как default-ing
, тогда special-ing
, запросы к /special are
направляются на my-default-service
вместо special-service
.
Я хочу, чтобы порядок добавления / удаления не зависел от маршрутизацииэто генерируется nginx-ingress-controller, так что мои манипуляции с kubectl более устойчивы, и если один из входов воссоздается, ничего не сломается.
Я использую nginx-ingress-controller:0.19.0
Спасибо за любую помощь, которую вы можете предложить!