Pull to refresh

Comments 13

А вы случайно не разбирались как затолкать эту историю в куб и приделать сверху балансировку? Я видел давно какие-то приблуды для запуска несколько инстансов сервера как одного, но всё это было сомнительного качества.

Хоть кому-то, кроме меня, пригодится. Я написал helm-chart'ы - https://github.com/iveahugeship/minecraft-helm-charts. Есть и для основного сервера, и для прокси, поддерживаются разные ядра, бэкапы, автоустановка модов, плагинов и модпаков, их конфигурация.

Не понял только что имеется в виду под балансировкой. Прокси? Туннели? Для прокси, опять же, есть helm-chart выше. Туннели - можно попробовать использовать Gate Proxy в Lite режиме. Но работают так себе. В качестве альтернативы использую другой чарт - https://github.com/itzg/minecraft-server-charts/tree/master/charts/mc-router. Сервис для mc-router с типом NodePort. Сам роутер на какой-нибудь ноде с белым ip. Домены - через тот же duckdns прикрутить.

В общем, я для своего сетапа использовал k3s, свои чарты, чарт mc-router. Запущено все на одной ноде с белым ip. К нему же A-записи через duckdns. Ну и в целом ок.

@Firemoon приветы старым друзьям, одобрите ссылочку, пожалуйста :)
И спасибо за статью!

«Запихать в куб» — это как будто не самая сложная задача. Но я любитель запускать на железе, поэтому без кубернетеса х)

Что касается расширения одного мира на несколько серверов — вроде есть MultiPaper и у него написано, что это форк Purpur'а, который тоже так мог. Балансировать между серверами может хоть прокся (Bungeecord/Velocity), хоть по DNS на разные серверы отправлять.

Но я как-то не очень оптимистично смотрю на эти извращения, потому что, мне кажется, обязательно где-нибудь что-нибудь отвалится. Folia, пытающийся в многопоточность — в бете, MultiPaper в бете и с ним несовместимы обычные плагины.

В какой-то момент кажется, что проще сделать несколько серверов на ~200 игроков с драконовскими ограничениями на количество сущностей в мире. Ну по крайней мере с высоты сегодняшнего опыта мне так кажется

поидее если задача межсерверки это сущность сети, тоесть поидее есть 2 сети их надо просто обьекдинить, если есть сущность сеть то поидее проще, наверно даже ничего не отвалится(тоесть как в какой-то там игре, есть таблица соединяемых серваков, и потом через время они докрутили алгоритм до состояния когда мало людей при помощи каких-то штук появляется межсерверка в мире, но им проще у них не кубомир, а в кубическом сложнее, там не просто игроки по миру путешествуют, а еще вот индивидуальные локации в мире и прочее)

Майнкрафт сервер это монолит и как со всеми монолитами, без изменений они тащатся в куб с разными допущениями. В текущем состоянии spigot и paper запуск майна в кубе оправдан, если нужно запускать разные миры на небольшое количество игроков (раздавать приватные сервера, pvp, какие-то короткие ивенты делать).

Долгоживущий мир ничего не выиграет от запуска в кубе, пока не появится условный "cloud native spigot". Нельзя увеличить tps или количество игроков увеличив количество реплик spigot, т.е. "spigot не поддерживает горизонтальное масштабирование по узлам". Справится с нагрузкой поможет только вертикальное масштабирование, банально "больше быстрых ядер, больше памяти", к чему в итоге и пришёл автор.

Сшивание интересная штука, но это скорее для увеличения границ мира. Нагрузка на спаун или lag machine все равно будут обрабатываться одним узлом.

Вообще, факт. Хотя есть решения, которые позволяют запускать несколько инстансов и балансировать нагрузку между ними. Но это энтерпрайзные решения.

Лично я запустил все в кубе (в k3s) с другими намерениями - простота установки, обновления, поддержки - полная автоматизация удобными и привычными инструментами. Просто и доступно.

проблема куба в том, что то что можно отдать под 1 сервер(группа) отдастся под кубы, если бы железо было бы доступнее, можно было бы сделать по уму, с нормальной сетевой связью серверов, тоесть дойти до кластеров, тоесть в кластере 2 сервера(группы) на каждом болванка сервер, на них фазирование от количества игроков, и тогда 2 сервера(группы) поидее остались в железках а сетка создаёт межсерверку поидее

ну а так можно просто тогда сделать, ну с кубическим индивидуальным миром даже не знаю как лучше, фазирование тут на игроков если только вешать, но вобщем сам мир тогда надо подгонять или вводить квесты - аля освоение новых временных континуумов, ну типо если прыгаем на сервер, бинд места(грядка/лужайка/домик/блок стартовых квестов) делать после квеста, тоесть расширять мир кубов под ново прибывшего, а это не майнкрафт поидее уже

интересно и классно, я всё не могу никак доделать кубики эти, как я понял ядро спигот написана на яп java

opengl 1 hello world ну по крайней мере где-то видел обзор что из-за старости APIшек java версию не запустить в дебагере, в то время когда бедрок вроде дебажится

Год назад поднял для друзей сервер на Paper на стареньком Mac Mini 2011 года. На 4-9 человек хватает с головой, разве что hdd стоило бы заменить на ssd. Но сейчас планы куда масштабнее, перенести его на уже серверное железо.

Где то годик назад думал о типо митапе на котором люди могли бы делиться опытом мониторинга, балансировке и о настройке серверов в майнкрафте. Что то на подобие zabbix meetup или MUM. Может в селектеле откликнется?

Спасибо, статья интересная, хотя виднеется нехватка опыта по minecraft серверам, но это не критично. Я бы больше смотрел на современные разработки, хотя они и платные, но дают преимущество. Например bungeecord я заменил бы на NullCordX (форк bungee), античит matrix или versus, обязательно нужно сделать свои шаблоны для защиты от бот атак (не ддос).

Мощно!) Захотелось присоединиться на сервер)

А для его работы было достаточно конфигурации с Intel Xeon Gold 6240, 128 ГБ RAM и NVMe-дисками на 512 ГБ в RAID1.

128 Гб ОЗУ и 512 Гб nvme сервер практически никогда не займет (если конечно не будет стоять что-то похожее на CoreProtect и иметь сверх огромный размер мира, в котором что-то постоянно меняется).

Чтобы игровые серверы работали с BungeeCord, они должны быть выведены в офлайн-режим. Это создает потенциальную уязвимость: если игрок может подключиться к игровому сервер в обход прокси-сервера, то онлайн-аутентификации не произойдет.

Вероятно автор имел ввиду online-mode: false. В таком случае все сервера, кроме прокси, обычно рекомендуют запускать на 127.0.0.1. К этому же в spigot.yml включается bungeecord: true (чтобы человек не смог подключиться без перенаправления bungeecordОм).

Кроме того, (душню) люди предпочитают ставить не Bungeecord (вроде как он медленный, на себе разницы не замечал). Есть вариант Velocity, но на нём могут не работать плагины, которые работают на Bungeecord (или EOL waterfall)

Sign up to leave a comment.

Information

Website
slc.tl
Registered
Founded
Employees
1,001–5,000 employees
Location
Россия
Representative
Влад Ефименко