Вход на корень сталкивается с входом на пути - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть два контейнера - один, который является статической страницей в nginx, и второй, который является реагирующим приложением.

Я бы хотел показывать статическую страницу на / и реагировать на приложение на /app

В настоящее время проблема в том, что когда я ввожу /, у меня есть перенаправление на /app

Отрывок руля для статической страницы:

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/app-root:  /
  paths:
    - /

Отрывок шлема для приложения реакции:

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/app-root: app/
  paths:
    - /app

kubectl describe ingress

Name:             app
Namespace:        prod
Address:          
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host              Path  Backends
  ----              ----  --------
  example.com  
                    /app   app:http (10.244.2.52:80)
Annotations:
  kubernetes.io/ingress.class:           nginx
  nginx.ingress.kubernetes.io/app-root:  app/



Name:             static-page
Namespace:        prod
Address:          
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host              Path  Backends
  ----              ----  --------
  example.com  
                    /   static-page:80 (10.244.2.40:80)
Annotations:
  kubernetes.io/ingress.class:           nginx
  nginx.ingress.kubernetes.io/app-root:  /

1 Ответ

1 голос
/ 02 апреля 2019

Вы можете попытаться использовать многопутевую конфигурацию в пределах одного входного объекта без nginx.ingress.kubernetes.io/app-root: аннотации, она работает для меня в похожем сценарии:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
  name: example
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: static-page
          servicePort: 80
        path: /
      - backend:
          serviceName: app
          servicePort: 80
        path: /app
...