Распределение нагрузки по мастер-узлам kubernetes
Есть ли документация, как использовать внешний балансировщик нагрузки для балансировки нагрузки трафика на сервере API kubernetes.
Случай использования:
Я не предпочитаю использовать один ip / name главного узла в файле kubeconfig и мне нужно общее имя для всех мастеров, чтобы, если один мастер вышел из строя, он отправлял трафик другому.
У меня уже есть DNS-имя, указывающее на IP-адрес loadbalancer, а loadbalancer настроен с использованием SSL-сертификата и основных внутренних узлов kubernetes, но это приводит к ошибке: "Запланировать запрос http на сервер https"
Каким-то образом балансировщик нагрузки отправляет http-запрос на сервер API kubernetes вместо https.
1 ответ
Оказывается, он работает на L7 http, но отлично работает на L4 TCP.
Конфигурация HAProxy выглядит следующим образом:
frontend k8s-api
bind 192.168.0.150:443
bind 127.0.0.1:443
mode tcp
option tcplog
default_backend k8s-api
backend k8s-api
mode tcp
option tcplog
option tcp-check
balance roundrobin
default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
server k8s-api-1 192.168.0.147:6443 check
server k8s-api-2 192.168.0.148:6443 check
server k8s-api-3 192.168.0.149:6443 check