Русский
Русский
English
Статистика
Реклама

Wireguard для Kubernetes и удобные GUI


Can I just once again state my love for [WireGuard] and hope it gets merged soon? Maybe the code isn't perfect, but I've skimmed it, and compared to the horrors that are OpenVPN and IPSec, it's a work of art.

Linus Torvalds, on the Linux Kernel Mailing List

Уверен, что многие уже слышали про Wireguard. Некоторые даже щупали вживую. Мне он вполне понравился в продакшене как по производительности, так и по простоте настройки. Да, там нет миллиона загадочных конфигураций на все случаи жизни как у OpenVPN и XFRM+StrongSwan в IPSEC VPN. Он прост и лаконичен как в коде, так и в конфигах. Жирным и неповоротливым он станет еще нескоро. Короче, такой позитивный вариант сценария сжечь легаси и написать все как надо.

Я решил не писать очередной гайд как я поставил Wireguard, а поделиться некоторыми полезными утилитами. Некоторые с очень удачным, на мой вкус GUI, что уместно для сервисов со множеством пользователей. Разберем использование этого VPN для связи между нодами в разных кластерах Kubernetes, несколько web-GUI для генерации и пару полезных ресурсов.

Зачем он вообще нужен?


Ключевой вопрос. Одна из самых крутых его фишек он очень производительный. В большинстве кейсов меньше задержки и выше пропускная способность при равной загрузке CPU. Если вы платите за потраченные ресурсы или планируете аренду виртуальных машин с учетом пиковых нагрузок, то этот тип VPN еще и сэкономит вам деньги. Объяснять, чем плохо гонять трафик по открытым сетям между отдельными нодами, я думаю не надо.


Источник: www.wireguard.com/performance

Причем стоит обратить внимание на то, что он был включен в состав ядра начиная с Linux 5.6, а с весны этого года он также включен в состав основной ветки ядра Android, что дает нам отличную энергоэффективность на мобильниках. Хотя, надо сказать, что он и до этого не особо напрягал батарею телефона.

Kilo wireguard для Kubernetes


Очень часто у компаний крупнее среднего возникают ситуации, когда необходимо использовать несколько разных облаков. Причины разные отказоустойчивость, хорошее присутствие в регионе и низкие пинги. Иногда цены на конкретные продукты. Например, вы можете крутить фронтенд и основную логику на собственных серверах, а GPU-hungry задачи выносить на AWS-инстансы.

Как это работает? Kilo требует наличия wireguard kernel-модуля на всех нодах. Если вы используете ядра новее 5.6, то модуль будет уже в основной ветке и допиливать ничего не придется. Далее, kilo agent, kg, запускается на каждой ноде кластера, настраивая приватные и публичные ключи для организации VPN. Также автоматически настраиваются правила маршрутизации трафика между отдельными регионами. Также kilo может работать совместно с другими сетевыми решениями для кластеров, например с Flannel. При этом kilo будет обеспечивать связь между регионами, а Flannel позаботится о трафике внутри одной локации.
При построении сетевой топологии он опирается на topology.kubernetes.io/region, но можно разметить регионы и вручную.

Требования:

  • Ядро новее 5.6 или отдельный модуль wireguard
  • Белые IP у нод, для организации прямого коннекта между ними.


Более подробная информация есть в прошлогоднем выступлении разработчиков на Kubernetes Forums в Сеуле и в документации.

wg-gen-web


image
Что называется, yet another config generator. Но очень приятный в работе. Основное отличие в подходе автор не пытается на лету править конфигурацию работающего сервиса, а лишь предоставляет удобный GUI для генерации правил. Дальше вы сами имплементируете обновление конфигов на свой вкус.

Ключевые фичи генерирует удобные QR-коды для мобильных клиентов и отправляет на почту клиенту все необходимые данные для подключения. Ну и докеризирован, само собой. Репозиторий тут.

Деплой довольно прост:

docker run --rm -it -v /tmp/wireguard:/data -p 8080:8080 -e "WG_CONF_DIR=/data" vx3r/wg-gen-web:latest

Subspace



Еще один GUI для удобной работы с множеством клиентских устройств.
Основные фичи:

  1. Single Sign-On с использованием SAML. Можно заходить под Google учеткой.
  2. Добавление и удаление устройств в несколько кликов
  3. Генерация индивидуальных конфигов для каждого устройства. Ну и QR-код, конечно.
  4. HTTPS от Let's Encrypt из коробки и автоматический редирект на 443 порт

Легко деплоится на VPS. У нас, кстати, они есть. Можем отсыпать)
На сервере должен быть установлен wireguard и открыты порты: 80/tcp, 443/tcp, 51820/udp (WireGuard). При этом надо удалить штатный dnsmasq, так как он будет запущен в контейнере.
Дальше все довольно типично, только --env SUBSPACE_HTTP_HOST заменить на свой домен:
# Your data directory should be bind-mounted as `/data` inside the container using the `--volume` flag.$ mkdir /datadocker create \    --name subspace \    --restart always \    --network host \    --cap-add NET_ADMIN \    --volume /usr/bin/wg:/usr/bin/wg \    --volume /data:/data \    --env SUBSPACE_HTTP_HOST=subspace.example.com \    subspacecloud/subspace:latest$ sudo docker start subspace

Репозиторий тут.

Вместо выводов


Если вы еще не пробовали этот VPN настоятельно рекомендую. Часто он способен оживить не очень мощное железо, которое не справлялось под нагрузкой ранее. А еще он не очень сложен в конфигурации. Правда, его основная задача все же пробивание прямых, заранее настроенных туннелей. Всякие динамические конфигурации ему недоступны в привычном понимании. Своеобразная плата за простоту и производительность.
Кстати, если вы еще не в курсе, то wireguard уже включен в бета-версию RouterOS 7.1 от MikroTik. Попробовать можно уже сейчас, но, по моим ощущениям, оно еще сыровато.


Ну и традиционно могу пригласить попробовать . Например, чтобы заворачивать часть трафика домашней сети в Швейцарию или Нидерланды. У нас много разных локаций и ценовая политика весьма приятная для подобных задач.

Как я уже говорил, Wireguard очень экономно потребляет ресурсы, поэтому более чем достаточно будет минимальной конфигурации с 1 ядром и 1 ГБ оперативной памяти для поддержки большого количества клиентов. Цены тоже получаются довольно гуманные:

  • 503 /мес.
  • 240 /мес.




Источник: habr.com
К списку статей
Опубликовано: 09.12.2020 16:05:25
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Блог компании ruvds.com

Настройка linux

Системное администрирование

Сетевые технологии

Серверное администрирование

Ruvds_статьи

Сети

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru