Балансировщики нагрузки

По умолчанию в кластере используется:

  • Ingress-controller, отвечающий за доступ к приложениям;
  • Kube-VIP, отвечающий за доступ к Ingress-controller.

При потере доступности узла VIP будет переназначен на другой узел. Рекомендуем использовать внешний балансировщик для кластера управления в промышленной (продуктивной) среде.

К балансировщику сетевой нагрузки предъявляются следующие требования:

  1. Для установки кластера требуется балансировщик сетевой нагрузки.
  2. Балансировку сетевой нагрузки требуется реализовывать только на уровне L4.
  3. Сетевой балансировщик должен поддерживать механизм сохранения выбора конечного узла на основании IP-адреса источника.

Пример конфигурации HAProxy

#---------------------------------------------------------------------
# myclustername cluster
#---------------------------------------------------------------------

frontend myclustername-api-server
    bind 10.11.12.100:6443
    default_backend myclustername-api-server
    mode tcp

backend myclustername-api-server
    balance source
    mode tcp
    server master1 10.11.13.1:6443 check
    server master2 10.11.13.2:6443 check
    server master3 10.11.13.3:6443 check

frontend myclustername-ingress-http
    bind 10.11.12.100:80
    default_backend myclustername-ingress-http
    mode tcp
    option tcplog

backend myclustername-ingress-http
    balance source
    mode tcp
    server worker1 10.11.13.4:30080 check
    server worker2 10.11.13.5:30080 check

frontend myclustername-ingress-https
    bind 10.11.12.100:443
    default_backend myclustername-ingress-https
    mode tcp
    option tcplog

backend myclustername-ingress-https
    balance source
    mode tcp
    server worker1 10.11.13.4:30443 check
    server worker2 10.11.13.5:30443 check
# где
# 10.11.13.100 - IP внешнего балансировщика
# 10.11.13.1 - master1
# 10.11.13.2 - master2
# 10.11.13.3 - master3
# 10.11.13.4 - worker1
# 10.11.13.5 - worker2