Перенаправить ресурсный путь с Nginx Ingress - PullRequest
0 голосов
/ 15 мая 2019

Мое развертывание и служба, которая работает нормально, доступна через http://my.server.net:32142 - возвращает JSON

Вот вывод службы

NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
ok                NodePort    10.104.118.110   <none>        8080:32142/TCP   92m

Ingress:

NAME          HOSTS                    ADDRESS   PORTS   AGE
ok            my.server.net            80      86m

Но у меня есть проблема с Ingress, которая не перенаправляет меня на нужный мне ресурс

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ok
  labels:
    app: ok
    system: test
spec:
  rules:
  - host: my.server.net
    http:
      paths:
      - path: /test
        backend:
          serviceName: ok
          servicePort: 8080

Ожидаемый результат: http://my.server.net/test и http://my.server.net:32142/test должны вернуть JSON в тот момент, когда он вернетсятолько ошибка 404

1 Ответ

0 голосов
/ 15 мая 2019

Пожалуйста, попробуйте использовать пользовательский заголовок в запросе, чтобы ваш Ingress Controller мог находить маршруты для подходящего хоста для входящего трафика, в противном случае вы используете бэкэнд по умолчанию (404), например:

curl http://<IP_ADDRESS*>/test -H 'Host:my.server.net'

где IP_ADDRESS - это IP-адрес LoadBalancer - интерфейса вашего Ingress Controller, в конце концов вы можете попытаться использовать форму <IP_OF_NODE>:<NodePort>, но это зависит от того, как вы выставили свой Ingress Controller.

Пожалуйста, прочитайте здесь подробнее о конфигурации Ingress для так называемого "виртуального хостинга на основе имени"

...