Модуль управления VIP-адресами для сервисов (shturval-vip-provider)
О сервисе
| Параметр | Значение |
|---|---|
| Название в интерфейсе | Модуль управления виртуальными IP-адресами. Компонент конфигурации сервисов |
| Системное название (идентификатор) | shturval-vip-provider |
| Назначение в кластере | Управление виртуальными IP для сервисов (компонент конфигурации сервисов на базе Kube-VIP). Работает в связке с shturval-vip (конфигурация узлов). |
| Критический | Да |
| Публичный репозиторий | Kube-VIP |
| Зависимости | shturval-networking |
| Неймспейс | kube-vip |
Назначение
shturval-vip-provider — модуль управления виртуальными IP-адресами (компонент конфигурации сервисов) на базе Kube-VIP. Обеспечивает настройку VIP для сервисов в кластере. Конфигурация узлов для VIP — в сервисе shturval-vip.
При создании Service с типом LoadBalancer компонент выделяет IP-адрес из сконфигурированного CIDR или диапазона IP-адресов. Выделенный IP-адрес указывается в аннотации и параметре loadBalancerIP сервиса.
Развёртывание и управление
shturval-vip-provider — критический сервис платформы для выдачи виртуальных IP сервисам типа LoadBalancer. В платформе «Штурвал» его включение и жизненный цикл в кластере обеспечивает cluster-manager (сервис платформы); объект ShturvalServiceConfig (SSC) для чарта shturval-vip-provider создаётся и сопровождается как часть платформенной конфигурации. Для корректной работы должен быть развёрнут shturval-networking; поднятие назначенных адресов на узлах выполняет shturval-vip (компонент конфигурации узлов).
Рекомендация: не правьте ShturvalServiceConfig вручную для смены параметров релиза — используйте ShturvalServicePatch (SSP). Пулы адресов и правила выдачи IP для LoadBalancer задаются эксплуатационно через ConfigMap kubevip в неймспейсе kube-system (см. раздел ниже) — это настройка уже развёрнутого модуля, а не замена платформенной установки.
Где настраивать
Сервисы и репозитории → Установленные сервисы → shturval-vip-provider → Управлять.
Конфигурация доступных IP-адресов
Для выделения и назначения IP-адресов сервисам типа LoadBalancer настройте CIDR или диапазон IP-адресов в ConfigMap kubevip в неймспейсе kube-system.
Перейдите в неймспейс kube-system → Хранилище → ConfigMaps, найдите ConfigMap с именем kubevip (если отсутствует — создайте) и добавьте ключ с нужным параметром:
| Параметр | Описание | Пример |
|---|---|---|
cidr-global |
Глобальная подсеть для IP-адресов сервисов любого неймспейса | 192.168.0.216/29 |
range-global |
Глобальный диапазон IP-адресов для сервисов любого неймспейса | 192.168.1.220-192.168.1.230 |
cidr-<namespace> |
Подсеть для IP-адресов сервисов конкретного неймспейса | 192.168.0.216/29 |
range-<namespace> |
Диапазон IP-адресов для сервисов конкретного неймспейса | 192.168.1.220-192.168.1.230 |
Пример ConfigMap с глобальным CIDR
apiVersion: v1
kind: ConfigMap
metadata:
name: kubevip
namespace: kube-system
data:
cidr-global: 192.168.0.216/29
Пример ConfigMap с CIDR для отдельных неймспейсов
apiVersion: v1
kind: ConfigMap
metadata:
name: kubevip
namespace: kube-system
data:
cidr-mynamespace: 192.168.0.216/29
range-mynamespace1: 192.168.1.220-192.168.1.230
Если для неймспейса задан пул адресов, сервисам этого неймспейса будут назначаться только адреса из него — глобальный пул игнорируется.
После создания кластера, где не используется внешний балансировщик для Ingress, IP-адрес системного Ingress Controller записывается в ConfigMap kubevip, например:
Пример ConfigMap для Ingress
apiVersion: v1
kind: ConfigMap
metadata:
name: kubevip
namespace: kube-system
data:
cidr-ingress: 192.168.0.220/32
При необходимости можно вручную задать IP-адрес сервису типа LoadBalancer (даже вне заданного диапазона) одним из способов:
- добавить аннотацию
kube-vip.io/loadbalancerIPsк ресурсу Service; - при создании Service в графическом интерфейсе ввести IP-адрес в поле LoadBalancerIP.