Балансировка нагрузки веб-сокетов с помощью HAProxy - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь настроить входной контроллер HAProxy для правильной балансировки нагрузки при подключении к веб-сокету.Я попытался поднять значение timeout-client, timeout-server и timeout-connect, но безуспешно.

ingress.yaml

kind: Ingress
metadata:
  namespace: test-deploy
  name: app-test
  labels:
    app: app-test
  annotations:
    ingress.kubernetes.io/rewrite-target: /
    ingress.kubernetes.io/timeout-connect: "5000"
    ingress.kubernetes.io/timeout-client: "5000"
    ingress.kubernetes.io/timeout-server: "5000"
    ingress.kubernetes.io/timeout-tunnel: "3600"
spec:
  rules:
    - host: k8s-test.local.lan
      http:
        paths:
          - path: /app-test
            backend:
              serviceName: app-test
              servicePort: 9000



1 Ответ

0 голосов
/ 21 февраля 2019

Я не нашел подтверждения о поддержке веб-сокетов в документации по HAProxy, но в этом посте на Quora указано, что он прекрасно работает.Вам может потребоваться настроить таймауты клиент / сервер / тулнел, а иногда сопоставлять и направлять трафик веб-сокетов к правильному внутреннему назначению.

Вы можете проверить фактическую конфигурацию haproxy-ingress, используя следующую команду:

kubectl exec -ti haproxy-ingress-pod-name -n ingress-controller -- cat /etc/haproxy/haproxy.cfg

Если у вас более одного входа в кластер, вам может потребоваться указать прокси-класс в аннотации для каждого объекта Ingress, который должен использоваться входом HAProxy:

kubernetes.io/ingress.class: "haproxy"

Вход HAProxy в значительной степенитот же HAProxy с возможностью использовать объекты Kubernetes Ingress для обновления своей конфигурации.Дополнительную информацию о настройке HAProxy и HAProxy Ingress можно найти в статьях:

Надеюсь, это будет полезнотебе.

...