Как я могу обслуживать несколько путей в одной службе через один вход? - PullRequest
0 голосов
/ 10 октября 2019

Я работаю над кластером GKE. У меня работает простой сервер. На сервере есть три маршрута.

route 1 - / 
route 2 - /ping
route 3 - /health 

Эти пути возвращают ответ 200 с общими, но разными "ок" сообщениями.

Вот как выглядит мой входной yaml -

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: basic-ingress
spec:
  tls:
  - hosts:
    - www.simple.com
    secretName: simple-server-tls
  rules:
    - host: www.simple.com
      http:
        paths:
        - path: /ping
          backend:
            serviceName: simple-server
            servicePort: 8080

У меня есть мойСервер выставлен как балансировщик нагрузки. Я могу получить доступ ко всем трем маршрутам, используя loadbalancer как https://<loadbalancer_ip>:8080/ https://<loadbalancer_ip>:8080/ping https://<loadbalancer_ip>:8080/health

Однако, при попытке использовать вход, я получаю ответ 200 только на https://www.simple.com/ping Два других маршрута, т.е. https://www.simple.com/health и https://www.simple.com/ returndefault backend - 404 error.

Я могу подтвердить, что сервер работает и отлично обслуживает запросы, и у меня достаточно времени для входа (более 30 минут), чтобы завершить настройку. https://www.simple.com/healthz returns "OK".

Мне кажется, я ошибаюсь в правильной настройке входа. Любая помощь / предложения приветствуются.

Я не могу предоставить входные журналы, так как замечаю, что kubectl describe ingress/basic-ingress возвращает ошибку Error from server (NotFound): the server could not find the requested resource Однако kubectl получает входные данные basic-ingress www.simple.com <ingress_ip> 80, 443 31m

1 Ответ

0 голосов
/ 10 октября 2019

Разобрался с проблемой. Вам нужно добавить к пути джокер. У меня был только / на моем пути, и поэтому он отклонял (читай ошибку 404) для всех моих других URL. Я добавил /* и удалил the rewrite-target annotation, как правильно предложил @bserdar, и это сработало. Ссылка на проблему на github, которая очень помогла - https://github.com/kubernetes/ingress-nginx/issues/1120

...