Управляющий кластер
Содержание
Роль в архитектуре #
Управляющий кластер находится вне плоскости данных — пользовательский трафик через него не проходит. Он работает исключительно в плоскости управления.
Физическая структура #
Кластер состоит из трёх серверов, принадлежащих администратору сети. Три узла обеспечивают отказоустойчивость: кластер продолжает работать при выходе из строя одного сервера.
| Компонент | Назначение |
|---|---|
| K8s control plane | Оркестрация входного слоя (Entry-подов) |
| HA etcd | Оперативное хранилище данных сети |
| Root CA | Выпуск сертификатов для всех узлов сети |
| Сервисная инфраструктура | Telegram-бот, резервное копирование, subscription-сервис |
Функции #
1. Единственный удостоверяющий центр (CA) #
Управляющий кластер хранит корневой приватный ключ PKI и выпускает сертификаты для всех участников сети:
- Entry-узлы — сертификат, позволяющий подключаться к Core-нодам по mTLS.
- Core-ноды — сертификат, позволяющий принимать трафик от Entry-узлов по mTLS.
Никакого другого источника доверия в сети нет. Узел без действующего сертификата от этого CA не может участвовать в передаче трафика.
2. Оперативное хранилище (etcd) #
В etcd хранится актуальное состояние сети: маршрутизация клиентов, параметры соединений, статусы узлов, конфигурации. Entry-поды запрашивают etcd при каждом новом клиентском подключении, чтобы определить целевую Core-ноду.
→ Подробнее: система хранения данных
3. Оркестрация входного слоя #
K8s control plane управляет Entry-подами: следит за их состоянием, распределяет нагрузку через LoadBalancer, выполняет rolling updates при обновлении конфигурации.
4. Регистрация Core-нод #
Core-ноды самостоятельно инициируют подключение к управляющему кластеру (phone-home). Через этот канал:
- Core-нода получает конфигурацию и обновления.
- Управляющий кластер знает, что нода жива и готова принимать трафик.
- Адрес Core-ноды и её параметры фиксируются в etcd.
5. Сервисная инфраструктура #
На управляющем кластере размещается сервисная инфраструктура, не связанная напрямую с трафиком:
| Сервис | Назначение |
|---|---|
| Telegram-бот | Административный интерфейс: управление участниками, алерты, выдача join-токенов |
| Резервное копирование | Периодическая фиксация состояния сети в Git-репозиторий |
| Subscription-сервис | Выдача клиентам актуальных конфигураций подключения |
Отличие от старой Root-ноды #
| Аспект | Root-нода (старая) | Управляющий кластер |
|---|---|---|
| Физическая структура | Один сервер | Три сервера, HA |
| Отказоустойчивость | Единая точка отказа | Выдерживает потерю одного узла |
| SSH-доступ к нодам | Да, ко всем | Нет — только через K8s API и phone-home |
| etcd | На Core-нодах | Только на управляющем кластере |
| Доступность | Периодическая | Постоянная (сервисная инфраструктура) |