Переписывание путей с Traefik - PullRequest
0 голосов
/ 24 мая 2018

Может кто-нибудь подсказать, как маршрутизировать следующие URL-адреса:

http://monitor.app.com/service-one
http://monitor.app.com/service-two
http://monitor.app.com/service-three
http://monitor.app.com/service-four

К следующим серверным службам?

http://service-one/monitor
http://service-two/monitor
http://service-three/monitor
http://service-four/monitor

Желательно, используя синтаксис [file] Traefik,хотя любой в порядке.

1 Ответ

0 голосов
/ 25 мая 2018

Вот конфигурация для вашего примера.Настройте его в соответствии с вашей реальной конфигурацией кластера:

apiVersion: v1
kind: Service
metadata:
  name: service-one
spec:
  selector:
    k8s-app: service-one-app
  ports:
  - port: 80
    targetPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: service-two
spec:
  selector:
    k8s-app: service-two-app
  ports:
  - port: 80
    targetPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: service-three
spec:
  selector:
    k8s-app: service-three-app
  ports:
  - port: 80
    targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: monitor.app
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/rewrite-target: /monitor # set path to result request
spec:
  rules:
  - host: monitor.app.com
    http:
      paths:
      - path /service-one  # path for routing, it will be removed because of PathPrefixStrip settings
        backend:
          serviceName: service-one
          servicePort: 80
      - path /service-two  # path for routing, it will be removed because of PathPrefixStrip settings
        backend:
          serviceName: service-two
          servicePort: 80
      - path /service-three  # path for routing, it will be removed because of PathPrefixStrip settings
        backend:
          serviceName: service-three
          servicePort: 80

Дополнительную информацию можно найти здесь:

...