Files
K3S/addons/netbird
Sergey Antropoff eccc1c2a01 docs: полная документация проекта — docs/ и README.md для каждого аддона
- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/
- docs/: 13 файлов — getting-started, architecture, configuration, addons,
  storage, security, cicd, observability, networking, operations,
  make-reference, molecule-testing, troubleshooting
- addons/*/README.md: 31 новый файл — описание, параметры, примеры кода
  для каждого из 34 аддонов (vault и external-secrets уже существовали)
2026-04-26 00:22:06 +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