Как работает балансировка нагрузки на кубе-прокси
Я понимаю, что все узлы в кластере K8s будут иметь kube-proxy
работает, и любой узел может пересылать трафик для любой службы в кластере.
Допустим, у меня есть служба с двумя модулями реплик, которые работают на двух узлах N1
а также N2
, Внешний балансировщик нагрузки перенаправляет трафик в N3
а также N4
, Первый запрос достигает N3
а также N3
"s kube-proxy
перенаправляет трафик на N1
, Второй запрос достигает N4
а также N4
"s kube-proxy
перенаправляет трафик на N2.
Делать kube-proxy
s общаться друг с другом так, чтобы N4
"s kube-proxy
известно, что ранее запрос был отправлен N1
и поэтому следует перенаправить этот запрос на N2
для правильной балансировки нагрузки или решение является локальным для этого kube-proxy
и не скоординированы через kube-proxy
в каком случае это не правильно баланс нагрузки?
2 ответа
Kube-Proxy
не общаются друг с другом, они только общаются apiserver
получать информацию об услугах и их конечных точках.
Балансировка нагрузки проводится отдельно на каждом kube-proxy
, Поскольку алгоритм LB по умолчанию является случайным, не нужно усложнять ситуацию.
Балансировка нагрузки каждого экземпляра прокси-сервера Kube выполняется отдельно.