Вход Kubernetes не работает с редиректом по какому-либо пути, например "/myapp", но работает только для "/"

У меня есть контейнер, работающий по URL- адресу, например http://localhost:8000/ps/app/ui/?pid=201. Контейнер развернут в kubernetes и открыт для службы как "ps-app-ui:8000". Я хочу создать вход, который может быть доступен извне. Входной шаблон выглядит так:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ps-ingress
spec:
  rules:
  - http:
      paths:
      - path: /myapp/
        backend:
          serviceName: ps-app-ui
          servicePort: 8000

Проблема в том, что он не работает с этим входом. Я также попытался добавить "ingress.kubernetes.io/rewrite-target: /", но безуспешно. Может ли кто-нибудь помочь мне сделать мое приложение доступным через " http://ingress-ip/myapp/ps/app/ui/?pid=201 "

Буду очень благодарен.

2 ответа

Версия Ingress 0.22.0 или выше изменила способ работы rewrite-target. Вам нужно будет сопоставить путь с регулярным выражением и добавить его в цель перезаписи.

nginx.ingress.kubernetes.io/rewrite-target: /$2
...
...
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /something(/|$)(.*)

Обратитесь к списку изменений здесь. Как писать здесь

Я думаю

- path: /myapp/

соответствует вашему приложению в http://myapp/myapp/

Так что, если у меня есть определение:

  - host: app.example.com
    http:
      paths:
      - path: /myapp

Это было бы http://app.example.com/myapp

Если вы хотите использовать http://myapp/ps/app/ui/?pid=201 вам нужно:

  • убедитесь, что ваша операционная система переводит myapp на IP-адрес, где слушает ваш входной контроллер
  • добавить hostmyapp к входу
  • вы можете оставить путь пустым (при условии, что ваше приложение обрабатывает полный /ps/app/ui/?pid=201 дорожка)

Это приводит к

rules:
  - host: myapp
    http:
      paths:
      - backend:
          serviceName: ps-app-ui
          servicePort: 8000

Этот вход будет перенаправлять весь трафик на хост myapp к вашим услугам

Другие вопросы по тегам