Как переписать цель на правильный путь в haproxy-ingress? - PullRequest
1 голос
/ 29 мая 2020

Я пытаюсь использовать haproxy для балансировки нагрузки и haproxy-ingress в качестве контроллера входящего трафика в k8s.

моя конфигурация баланса нагрузки:

frontend MyFrontend_80
    bind    *:80
    bind    *:443
    mode    tcp
    default_backend         TransparentBack_https

backend TransparentBack_https
        mode                            tcp
        balance roundrobin
        option ssl-hello-chk
        server                  MyWebServer1 10.5.5.53
        server                  MyWebServer2 10.5.5.54
        server                  MyWebServer3 10.5.5.55

Ingress-файл:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: li
  namespace: li
  annotations:
    # add an annotation indicating the issuer to use.
    cert-manager.io/cluster-issuer: "letsencrypt-staging"
    #haproxy.org/forwarded-for: true
    kubernetes.io/ingress.class: haproxy
    ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
  - host: a.b.c
    http:
      paths:
      - path: /storage
        backend:
          serviceName: li-frontend
          servicePort: 80
  tls:
  - hosts:
    - a.b.c
    secretName: longhorn-ui-tls

li-frontend - это служба пользовательского интерфейса панели инструментов.

Все в порядке когда я установил поле пути пустым в моем входящем входе. и страница не является нормальной, если поле пути установлено в / storage или любое непустое значение.

Я обнаружил, что какая-то ссылка не получает правильную позицию, например

requst             correct value
/main.js           /storage/main.js

Я нашел это в nginx -ingress:

#nginx.ingress.kubernetes.io/configuration-snippet: |
#rewrite ^/main(.*)$ /storage/main$1 redirect;

Имеет ли haproxy-ingress ту же функцию? Я пробую их, но безрезультатно:

ingress.kubernetes.io/app-root: /storage
ingress.kubernetes.io/rewrite-target: /storage

Кроме того, я использую rewrite в nginx -ingress, но он не работает на websocket.

Извините за мой пул engli sh.

...