5

k8s では、haproxy をロード バランスとして使用し、haproxy-ingress をイングレス コントローラーとして使用しようとしています。

私の負荷分散設定:

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

入力ファイル:

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 は、ダッシュボードの ui サービスです。

イングレスでパス フィールドを空白に設定すると、すべて問題ありません。パス フィールドが /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

また、nginx-ingress で rewrite を使っていますが、websocket では動作しません。

私のプール英語でごめんなさい。

4

1 に答える 1