HAproxy как входной контроллер - PullRequest
0 голосов
/ 29 января 2020

На что способен входной контроллер балансировки нагрузки HAproxy. Может ли он сделать балансировку нагрузки на уровне Pod? или он делает это на балансировке нагрузки на уровне узла.

Спасибо Yaniv

Ответы [ 2 ]

1 голос
/ 29 января 2020

Как указано в официальной документации :

Входной контроллер дает вам возможность:

  • Использовать только один IP адрес, порт и прямые запросы к правильному модулю на основе заголовка хоста и пути запроса

  • Безопасная связь со встроенным завершением SSL

  • Примените ограничения скорости для клиентов, при желании добавляя белый список IP-адресов

  • Выберите из любого из алгоритмов распределения нагрузки HAProxy

  • Получите превосходную наблюдаемость на уровне 7 с помощью страницы статистики HAProxy и метрик Prometheus

  • Установите максимальные пределы подключения к внутренним серверам для предотвращения перегрузки служб

Также я рекомендую следующие ресурсы:

L7 маршрутизация является одной из основных функций Ingress, разрешение входящих запросов быть направленным на точные модули, которые могут обслуживать их на основе характеристик HTTP, таких как запрошенный путь URL. Другие функции включают в себя завершение TLS, использование нескольких доменов и, что самое важное, трафик балансировки нагрузки c.

Я надеюсь, что это помогает.

1 голос
/ 29 января 2020

Вход обеспечивает балансировку нагрузки, виртуальный хостинг на основе имени, завершение SSL / TLS. Да, он будет выполнять балансировку нагрузки на сервисах (поддерживаемых модулями). Вот пример файла манифеста объекта Ingress kubernetes.

Example:

 apiVersion: networking.k8s.io/v1beta1
 kind: Ingress
 metadata:
     name: sample-ingress
     annotations:
        nginx.ingress.kubernetes.io/rewrite-target: /
 spec:
     rules:
     - host: foo.bar.com
       http:
          paths:
          - path: /foo
            backend:
                serviceName: service1 ( Backed by service1 pod )
                servicePort: 4200
          - path: /bar
            backend:
                serviceName: service2  ( Backed by service2 pod )
                servicePort: 8080
...