У меня есть 2 службы, которые используют один и тот же образ, но их конфигурация отличается. Я хочу, чтобы всякий раз, когда я запрашиваю / get_traits_similarity, он перенаправляется на / get_similarity внутри этой службы. Есть способ как это сделать? Ниже представлена последняя конфигурация, которую я пробовал.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: "/$1"
nginx.ingress.kubernetes.io/ssl-redirect: 'false'
nginx.ingress.kubernetes.io/use-regex: 'true'
nginx.ingress.kubernetes.io/app-root: /get_similarity
labels:
app.kubernetes.io/component: hashingservice
app.kubernetes.io/name: hashing-ingress
app.kubernetes.io/part-of: hashingapi
name: hashing-ingress
namespace: default
spec:
rules:
- http:
paths:
- backend:
serviceName: mediasimilarity
servicePort: 5000
path: "/(get_similarity)"
- backend:
serviceName: mediasimilarity
servicePort: 5000
path: "/(create_token)(/get_similarity){1}"
- backend:
serviceName: mediasimilarity
servicePort: 5000
path: "/(load_index)"
- backend:
serviceName: traits-mediasimilarity
servicePort: 5000
path: "/(get_traits_similarity)(/|$)(.*)"
- backend:
serviceName: traits-mediasimilarity
servicePort: 5000
path: "/(create_token)/(get_traits_similarity)(/|$)(.*){1}"
- backend:
serviceName: traits-mediasimilarity
servicePort: 5000
path: "/(load_index)"
Я вижу три потенциальных проблемы с вашей конфигурацией:
Опечатка в аннотациях: nginx.ingress.kubernetes.io/user-regex:
вместо того nginx.ingress.kubernetes.io/use-regex:
(уже исправлено)
NetworkPolicy в extensions/v1beta1
Версия API больше не обслуживается из Kubernetes версии 1.16.
Учитывая Переписать сам:
вам необходимо правильно установить цель: nginx.ingress.kubernetes.io/rewrite-target: /get_similarity/$2
вам нужно указать свой хост в поле spec:
часть
наконец, вам нужно указать путь, который вы хотите переписать: path: /get_traits_similarity(/|$)(.*)
Вот пример:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /get_similarity/$2
name: hashing-ingress
namespace: default
spec:
rules:
- host: <your_host>
http:
paths:
- backend:
serviceName: traits-mediasimilarity
servicePort: 5000
path: /get_traits_similarity(/|$)(.*)
При необходимости обратитесь к связанной документации и сообщите мне, помогло ли это.