Обновлена 17 июля 2026 г. в 15:34
Маршрутизация сервисов с помощью BGP в VK Private Cloud
Data Platform в конфигурации Standalone в VK Private Cloud использует протокол пограничной маршрутизации BGP (Border Gateway Protocol) для отказоустойчивой публикации сервисов из кластера Kubernetes в сети проекта.
В маршрутизации участвуют следующие компоненты:
- Мультиплексор — виртуальная машина, обеспечивающая сетевую связность между сетью проекта и сервисами Kubernetes.
- kube-vip — компонент Kubernetes, который работает на узлах кластера, назначает виртуальный IP-адрес (VIP, Virtual IP) сервисам и публикует их по BGP на Route Reflector.
- Route Reflector — компонент BGP, принимающий маршруты от kube-vip и отражающий их на мультиплексорах. Разворачивается в двух экземплярах для отказоустойчивости.
- bird — демон маршрутизации, который работает внутри мультиплексора, получает маршруты от Route Reflector и устанавливает их в таблицу маршрутизации ядра Linux (FIB, Forwarding Information Base).
- В кластере Kubernetes создается сервис, которому назначается виртуальный IP-адрес.
- kube-vip на одном из узлов сообщает Route Reflector виртуальный IP-адрес и узел, на котором этот адрес расположен — это называется анонсом маршрута. При недоступности узла kube-vip переназначает виртуальный IP-адрес на другой узел.
- Route Reflector принимает маршрут и передает его на все мультиплексоры.
- Мультиплексор получает маршрут от Route Reflector через демон маршрутизации bird, который устанавливает его в таблицу маршрутизации ядра Linux (FIB).
- Запрос из сети проекта попадает на мультиплексор и маршрутизируется к сервису по опубликованному виртуальному IP-адресу.
Схема маршрутизации сервисов с помощью BGP приведена на рисунке 1.
Рисунок 1 — Схема маршрутизации сервисов с помощью BGP