VK Data Platform logo
Помощь
Обновлена 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).

Принцип работы

  1. В кластере Kubernetes создается сервис, которому назначается виртуальный IP-адрес.
  2. kube-vip на одном из узлов сообщает Route Reflector виртуальный IP-адрес и узел, на котором этот адрес расположен — это называется анонсом маршрута. При недоступности узла kube-vip переназначает виртуальный IP-адрес на другой узел.
  3. Route Reflector принимает маршрут и передает его на все мультиплексоры.
  4. Мультиплексор получает маршрут от Route Reflector через демон маршрутизации bird, который устанавливает его в таблицу маршрутизации ядра Linux (FIB).
  5. Запрос из сети проекта попадает на мультиплексор и маршрутизируется к сервису по опубликованному виртуальному IP-адресу.

Схема маршрутизации сервисов с помощью BGP приведена на рисунке 1.

Схема маршрутизации сервисов с помощью BGP
Рисунок 1 — Схема маршрутизации сервисов с помощью BGP