Я пытаюсь использовать 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.