Заменить внешний балансировщик нагрузки Ingress

Если в 2.12 необходимо, чтобы кластер управления (клиентский кластер) работал с внутренним балансировщиком нагрузки для Ingress-контроллера и корпоративным доменом вместо shturval.link, вы можете:

  • Инсталлировать кластер с внешним балансировщиком и корпоративным доменным именем. Подробнее об инсталляции на страницах кластера управления, клиентского кластера.
  • В созданном кластере настроить конфигурацию кластера, заменив внешний балансировщик нагрузки Ingress-контроллера на внутренний.

Это позволит избежать изменения доменного имени в развернутом кластере.

  1. Подключитесь к хосту, на котором поднят внешний балансировщик Ingress, и освободите VIP-адрес. Способ освобождения IP-адреса зависит от вашей операционной системы и варианта назначения.

  2. В конфигурационном файле HAProxy haproxy.cfg удалите bind с привязкой VIP-адрес для Ingress.

Команды управления работой haproxy

Если HAProxy больше не будет использован, вы можете остановить и выключить его.

# Остановить работу HAProxy
sudo systemctl stop haproxy

# Отключение автозапуска HAProxy
sudo systemctl disable haproxy
Пример настройки haproxy.cfg
#---------------------------------------------------------------------
# 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:80 check
    server worker2 10.11.13.5:80 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:443 check
    server worker2 10.11.13.5:443 check
# где
# 10.11.12.100 - IP внешнего балансировщика
# 10.11.13.1 - Control Plane 1
# 10.11.13.2 - Control Plane 2
# 10.11.13.3 - Control Plane 3
# 10.11.13.4 - worker1
# 10.11.13.5 - worker2
  1. Подключитесь к кластеру из консоли и добавьте VIP-адрес Ingress в ConfigMap с именем kubevip неймспейса kube-system.
Команда
# Проверка существования ConfigMap kubevip в кластере. Если нет ConfigMap с таким именем, замените команду редактирования на создание
kubectl -n kube-system get cm kubevip -o yaml

# Добавить/изменить CIDR в ConfigMap 
kubectl -n kube-system edit cm kubevip

В блок data добавьте строку/измените значение параметра cidr-ingress: <ваше-значение-VIP-адрес-Ingress-в-формате-CIDR>, например, 10.11.12.100/32.

Пример ConfigMap kubevip
apiVersion: v1
kind: ConfigMap
metadata:
  name: kubevip
  namespace: kube-system
data:
  cidr-ingress: <ваше-значение-VIP-адрес-Ingress-в-формате-CIDR>
  1. Подготовьте файл с манифестом ShturvalServicePatch, например, с именем shturval-ingress-controller-lb.yaml для применения к спецификации (ssc) Модуля управления внешними подключениями (shturval-ingress-controller). В ShturvalServicePatch укажите тип сервиса LoadBalancer и VIP-адрес Ingress.
Пример ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
  name: <имя ресурса>
spec:
  shturvalServiceConfigName: shturval-ingress-controller
  customvalues:
    controller:
      hostPort:
        enabled: true
      service:
        externalIPs:
        - <ваше-значение-параметра>
        nodePorts: {}
        type: LoadBalancer
Параметр Описание Тип данных Пример
metadata.name Имя ShturvalServicePatch string shturval-ingress-controller-lb
externalIPs VIP-адрес Ingress string 10.11.12.100
  1. В кластере примените подготовленный shturval-ingress-controller-lb.yaml с ShturvalServicePatch.
Команда
kubectl apply -f shturval-ingress-controller-lb.yaml
×