Доступ к нескольким веб-интерфейсам через входной контроллер в кластере Kubernetes - PullRequest
0 голосов
/ 10 марта 2020

У меня есть кластер Kubernetes с двумя приложениями, которые предоставляют веб-интерфейсы, и я хотел бы сделать доступ к ним обоим через входной контроллер NGINX. Это релевантная часть моего ingress.yaml:

tls:
  - hosts:
    - myapp.com
    secretName: my-certificate
  rules:
  - host: myapp.com
    http:
      paths:
      - backend:
          serviceName: myapp2-service
          servicePort: 12345
        path: /myapp2/(.*)
      - backend:
          serviceName: myapp1-service
          servicePort: 80
        path: /(.*)

С помощью этой настройки я могу получить доступ к интерфейсу myapp1 через URL myapp.com. Когда я изменяю его на

      paths:
      - backend:
          serviceName: myapp2-service
          servicePort: 12345
        path: /(.*)
      - backend:
          serviceName: myapp1-service
          servicePort: 80
        path: /(.*)

, я могу получить доступ к интерфейсу myapp2 через URL-адрес myapp.com.

Я хочу достичь того, чтобы я мог достичь интерфейса myapp1 через myapp. .com и интерфейс myapp.com/myapp2. Это возможно? И если так, то где моя ошибка? Как я уже сказал, интерфейс myapp2 в основном доступен, но не через суб-URL.

1 Ответ

1 голос
/ 10 марта 2020

Ваш путь настроен на /myapp2/(.*), поэтому myapp.com/myapp2 не соответствует этому.

Прямо сейчас myapp.com/myapp2 переходит к myapp1-service в поисках /myapp2 контента.

Вы можете настроить / в конце, чтобы быть необязательным. Но это повлияет на другие строки пути, которые соответствуют myapp2.

tls:
  - hosts:
    - myapp.com
    secretName: my-certificate
  rules:
  - host: myapp.com
    http:
      paths:
      - backend:
          serviceName: myapp2-service
          servicePort: 12345
        path: /myapp2(/|$)(.*)
      - backend:
          serviceName: myapp1-service
          servicePort: 80
        path: /(.*)

. Также возможно переписать myapp.com/myapp2 в myapp.com/myapp2/, но это немного сложнее в бесплатной версии nginx ingress .

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...