Является ли балансировщик нагрузки ненужным для встроенного решения etcd HA k3s

#kubernetes #high-availability #rancher #k3s

Вопрос:

У меня есть такое же обсуждение в репозитории github k3s, но никто не отвечает. Надеюсь, кто-нибудь сможет дать ответ здесь.

Есть статьи, в которых говорится о встроенном решении etcd HA для k3s, подобном этому. Одним из ключевых действий является добавление решения балансировки нагрузки (EIP, как в этой статье, или LB от поставщика clound) между агентами и мастерами:

 k3s agent --> load balancer --> master
 

И архитектура k3s также показывает, что необходим фиксированный адрес регистрации.

В то время как после некоторых исследований я обнаружил, что у k3s (по крайней мере, v1.21.5 k3s2) есть внутренний балансировщик нагрузки агента (конфигурация at /var/lib/rancher/k3s/agent/etc/k3s-agent-load-balancer.yaml ), который автоматически обновит список основных серверов api k8s в нем. Значит, внешний балансировщик нагрузки не нужен?

Ответ №1:

Я получил ответ от обсуждения k3s:

https://github.com/k3s-io/k3s/discussions/4488#discussioncomment-1719009

В нашей документации перечислены требования к «фиксированной конечной точке регистрации», чтобы узлы не зависели от одного сервера, находящегося в сети, для присоединения к кластеру. Эта конечная точка может быть балансировщиком нагрузки или DNS-псевдонимом, это зависит от вас. Это необходимо только при регистрации узлов в кластере; после успешного присоединения они используют балансировщик нагрузки клиента для прямой связи с серверами без прохождения конечной точки регистрации.

Я думаю, что этого достаточно, чтобы ответить на этот вопрос.

Ответ №2:

Да, внешний балансировщик нагрузки по-прежнему требуется для обеспечения высокой доступности настройки с несколькими главными узлами.

Всякий раз, когда вы запускаете рабочий узел или используете API, вам следует подключаться к внешнему балансировщику нагрузки, чтобы убедиться, что вы можете подключиться к работающему главному узлу, если один главный узел в данный момент не работает.

Внутренний балансировщик нагрузки, о котором вы упоминали выше, распределяет любую нагрузку внутри вашего кластера.

Комментарии:

1. Не могли бы вы рассказать более подробно о балансировщике нагрузки агента?