172 похожих чатов

Всем привет. Может я ошибся чатом, заранее извиняюсь если не

по теме пишу.
У нас стоит задача переделать наш legacy сервис, который используется нашими проектами.
В двух словах это куча baremetal'a в разных датацентрах СНГ с единым API, через который мы запускаем игровые сервера (UDP, не нами написанные).
с 2011 года это работает и обновлять ОС, софт и сами игровые сервера это боль. Да еще и каждый отдельный игровой сервер привязан к определенной ноде с определенным ip-адресом. Это неудобно.
Сейчас для нового проекта нам необходимо решить все эти проблемы и то, что тут нужно юзать Docker для сборок игровых серверов, это однозначное решение.
Это дает нам гибкость для автоматического тестирования, выкатывания сразу во все регионы и легкого обновления сборки благодаря layers (скачиваем только мелкие diff's нодах).
Вопрос относительно оркестрации. Насколько уместно тут использовать Kubernetes? Мы хотим умный шедулинг по селекторам, affinity/antiaffinity, да и taints/tolerations куба очень привлекательны, хотим failover в случае падения (то есть перезапуск на другой ноде с минимальным простоем). По сути это stateful, нет никакой балансировки, все пользователи подключаются на один игровой сервер напрямую по указанным ip:port, состояние хранится в памяти и его невозможно реплицировать куда-то. Хотелось бы live migration контейнера в случае maintenance ноды, но с кубом CRIU не работает.
Виртуализация нам не нужна, это ненужный оверхед. Концепция контейнеров идеально нам подходит, т.к. все ворклоады наши.
Также хочется чтобы у каждого контейнера был свой, статический внешний ip-адрес, который бы в случае падения ноды переносился на другую ноду.
Важный момент: запускаем игровые сервера по требованию, нужно как можно быстрее это делать, потому что по ту сторону сидят и ждут пользователи.
P.S. смотрю в сторону куба потому что держим кластера с вебом на нем уже около года

2 ответов

11 просмотров

@pyToshka

у меня на шифте с польным ci/cd на jenkins

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Ребят в СИ можно реализовать ООП?
Николай
33
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта