Балансировка нагрузки перед граничным маршрутизатором Traefik - PullRequest
1 голос
/ 03 февраля 2020

Рассматривая прокси-сервер OpenShift HA или проект Traefik: https://docs.traefik.io/. Я вижу, что входной контроллер Traefik развернут как DaemonSet. Это позволяет маршрутизировать трафик c для коррекции служб / конечных точек с использованием виртуального хоста.

Предположим, у меня есть кластер Kubernetes с несколькими узлами. Как можно избежать единой точки отказа?

Должен ли я иметь балансировщик нагрузки (или балансировку нагрузки DNS) перед моими узлами?

Если да, значит ли это, что :

  1. Балансировщик нагрузки отправит трафик c на один узел кластера k8s
  2. Traefik отправит запрос на одну из конечных точек / модулей. Где этот модуль может быть расположен в другом узле k8s?

Означает ли это, что будет уровень косвенности?

Мне также интересно, может ли функция F5 кластерного режима избежать такой косвенности?

РЕДАКТИРОВАТЬ: при использовании с F5 Входной ресурс

1 Ответ

3 голосов
/ 03 февраля 2020

Вы можете использовать балансировщик нагрузки (БОЛЬШОЙ IP от F5 или программный балансировщик нагрузки) для модулей traefik. Когда поступит запрос клиента, он будет отправлен балансировщиком нагрузки на один из модулей traefik. Как только запрос поступит в модуль traefik, traefik отправит запрос на IP-адреса модулей рабочей нагрузки kubernetes на основе правил входа, получив IP-адреса этих модулей из API конечной точки kubernetes. Вы можете настроить балансировку нагрузки L7 в traefik для своих модулей рабочей нагрузки.

Использование программного обратного прокси-сервера, такого как nginx, и предоставление его через балансировщик нагрузки привносит дополнительный сетевой скачок от балансировщика нагрузки к входному модулю nginx.

Глядя на F5 docs, BIG IP-контроллер также можно использовать в качестве входного контроллера, и я думаю, что с его помощью вы сможете избежать лишних скачков.

...