Files
K3S/addons/netbird
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00
..

NetBird VPN

Self-hosted WireGuard-based VPN. Устанавливает Management сервер, Signal сервер, Coturn (STUN/TURN) и опционально Subnet Router (доступ к локальным подсетям) и Exit Node (интернет через кластер). Все компоненты получают внешние IP через kube-vip LoadBalancer.

Быстрый старт

# group_vars/all/addons.yml
addon_netbird: true
netbird_domain: "netbird.example.com"

Секреты в vault.yml:

vault_netbird_coturn_password: "coturn-password"
vault_netbird_router_setup_key: ""    # заполнить после создания в Management UI
vault_netbird_exit_node_setup_key: "" # заполнить после создания в Management UI
make addon-netbird

Параметры

Переменная Умолч. Описание
netbird_domain netbird.example.com Домен Management сервера
netbird_management_lb_ip "" Статический IP (авто если пусто)
netbird_signal_lb_ip "" Статический IP Signal
netbird_coturn_lb_ip "" Статический IP Coturn
netbird_subnet_router_enabled false Subnet Router Pod
netbird_exit_node_enabled false Exit Node Pod

Порядок установки

Ansible автоматически:

  1. Деплоит Coturn → ждёт LB IP
  2. Деплоит Management (использует IP Coturn в конфиге) → ждёт LB IP
  3. Деплоит Signal → ждёт LB IP

После установки Ansible выводит IP всех компонентов и инструкции для настройки DNS.

Настройка DNS (после установки)

Ansible выведет IP адреса — создай DNS записи:

netbird.example.com       → Management LB IP
signal.netbird.example.com → Signal LB IP
turn.netbird.example.com  → Coturn LB IP

Подключение клиентов

# Linux/macOS
netbird up --management-url grpc://netbird.example.com:80

# Или через UI (Management Dashboard):
# http://MANAGEMENT_IP:80

Subnet Router

Разрешает VPN-клиентам обращаться к локальным сетям кластера:

netbird_subnet_router_enabled: true
netbird_subnet_routes:
  - "192.168.1.0/24"   # локальная сеть
  - "10.42.0.0/16"     # pod CIDR
  - "10.43.0.0/16"     # service CIDR

Создать Setup Key в Management UI:

  1. Management Dashboard → Setup Keys → Add Key
  2. Скопируй ключ в vault.yml: vault_netbird_router_setup_key
  3. Запусти make addon-netbird снова

Активировать маршруты в Management UI: Management Dashboard → Network Routes → настрой подсети

Exit Node

Направляет весь интернет-трафик VPN-клиентов через ноду кластера:

netbird_exit_node_enabled: true

Создать отдельный Setup Key для Exit Node или использовать тот же.

В Management Dashboard → Network Routes → добавь маршрут 0.0.0.0/0 через Exit Node пир.

Статические IP через kube-vip

Чтобы зафиксировать IP компонентов (рекомендуется для prod):

netbird_management_lb_ip: "192.168.1.110"
netbird_signal_lb_ip: "192.168.1.111"
netbird_coturn_lb_ip: "192.168.1.112"

Диагностика

kubectl get pods -n netbird
kubectl get svc -n netbird   # LB IPs
kubectl logs -n netbird deployment/netbird-management -f
kubectl logs -n netbird deployment/netbird-signal -f
kubectl logs -n netbird deployment/netbird-coturn -f

Официальные ресурсы