Трафик Ингресс не работает с IP кластера - PullRequest
1 голос
/ 15 мая 2019

Я использую миникуб для разработки приложения на Kubernetes и использую Traefik в качестве входного контроллера.

Я могу подключиться и использовать свои службы приложений, когда использую URL-адрес хоста, который я определил во входе («streambridge.local»), и я установил в хостах linux («/ etc / hosts») , Но когда я использую тот же IP-адрес, который я использовал для DNS, я не могу подключиться ни к одной из служб, и я получаю «404 страница не найдена». Я должен упомянуть, что я использую IP-адрес minikube, который я получил: $(minikube ip). Ниже мой входной конфиг и комнады, которые я использовал для DNS.

Как я могу подключиться и использовать свои сервисы приложений с IP?

Входная конфигурация:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: "traefik"
    traefik.frontend.rule.type: PathPrefixStrip
    traefik.frontend.passHostHeader: "true"
    traefik.backend.loadbalancer.sticky: "true"
    traefik.wss.protocol: http
    traefik.wss.protocol: https
spec:
  rules:
  - host: streambridge.local
    http:
      paths:
      - path: /dashboard
        backend:
          serviceName: dashboard
          servicePort: 9009
      - path: /rdb
        backend:
          serviceName: rethinkdb
          servicePort: 8085

Мой /etc/hosts:

127.0.0.1   localhost

192.168.99.100 traefik-ui.minikube
192.168.99.100 streambridge.local

Это работает: http://streambridge.local/rdb

Но это не работает: http://192.168.99.100/rdb и возвращает 404 page not found

1 Ответ

1 голос
/ 15 мая 2019

Вы создали входящие маршруты, которые оценивают заголовок хоста http-запроса.Таким образом, хотя вы на самом деле подключаетесь к одному и тому же ip, он один раз с host: streambridge.local, а один раз с «192.168.99.100», для которого вы не добавили правило в traefik.Поэтому это работает точно так, как настроено.

...