Заменить внешний балансировщик нагрузки Ingress
Если в 2.12 необходимо, чтобы кластер управления (клиентский кластер) работал с внутренним балансировщиком нагрузки для Ingress-контроллера и корпоративным доменом вместо shturval.link, вы можете:
- Инсталлировать кластер с внешним балансировщиком и корпоративным доменным именем. Подробнее об инсталляции на страницах кластера управления, клиентского кластера.
- В созданном кластере настроить конфигурацию кластера, заменив внешний балансировщик нагрузки Ingress-контроллера на внутренний.
Это позволит избежать изменения доменного имени в развернутом кластере.
-
Подключитесь к хосту, на котором поднят внешний балансировщик Ingress, и освободите VIP-адрес. Способ освобождения IP-адреса зависит от вашей операционной системы и варианта назначения.
-
В конфигурационном файле 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
- Подключитесь к кластеру из консоли и добавьте 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>
- Подготовьте файл с манифестом 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 |
- В кластере примените подготовленный shturval-ingress-controller-lb.yaml с ShturvalServicePatch.
Команда
kubectl apply -f shturval-ingress-controller-lb.yaml