Я немного поиграю с маршрутизацией на основе путей через входящие потоки Kubernetes (мы используем Nginx входящие). У нас есть одна служба, работающая за аутентификацией через внешнюю службу, как в первом фрагменте. Этот сервис уже используется другими сервисами в нашей экосистеме, однако по мере развития у сервиса теперь есть API управления, и нам нужно отключить аутентификацию для определенных c путей. Согласно этому ответу , это невозможно для basi c auth и, согласно тому, что я пробовал (второй фрагмент), это также невозможно для аутентификации через внешнюю службу. Есть ли другой способ разрешить указанные c пути без аутентификации без полной перестройки входов и доменов / путей?
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: path-based-routing-1
annotations:
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/auth-url: http://authorizer.dev.svc.cluster.local
spec:
tls:
- hosts:
- 'routing.example.com'
secretName: routing.example.com
rules:
- host: 'routing.example.com'
http:
paths:
- path: /
backend:
serviceName: path-based-routing-1
servicePort: 80
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: path-based-routing-2
annotations:
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/auth-type: ""
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- 'routing.example.com'
secretName: routing.example.com
rules:
- host: 'routing.example.com'
http:
paths:
- path: /management-api
backend:
serviceName: path-based-routing-2
servicePort: 80