Плагин для серверов Майнкрафт на Velocity автоматически находит серверы в Kubernetes и регистрирует их в прокси. Он подходит для сети из нескольких игровых серверов и умеет распределять игроков между одинаковыми лобби.
Возможности
- Отслеживает Pod и ReplicaSet в Kubernetes, добавляя и удаляя серверы в Velocity.
- Создаёт балансировщик: игроки, подключающиеся к общему имени, случайно направляются на один из серверов-реплик.
- Синхронизирует имена серверов между несколькими экземплярами Velocity через Redis.
Настройка
В config.yml указываются пространство Kubernetes в namespace, префикс меток в label-key-prefix и параметры Redis в redis. Переменные окружения KUVEL_NAMESPACE, KUVEL_LABEL_KEY_PREFIX, KUVEL_REDIS_GROUPNAME, KUVEL_REDIS_CONNECTION_HOSTNAME, KUVEL_REDIS_CONNECTION_PORT, KUVEL_REDIS_CONNECTION_USERNAME и KUVEL_REDIS_CONNECTION_PASSWORD имеют приоритет над файлом конфигурации.
Для обнаружения игрового сервера на его Pod или Deployment добавьте метку kuvel.azisaba.net/enable-server-discovery=true и имя kuvel.azisaba.net/preferred-server-name. Метка kuvel.azisaba.net/initial-server=true назначает начальный сервер, а kuvel.azisaba.net/disable-name-suffix=true сохраняет имя без суффикса и предназначена для одной реплики. При одинаковых именах нескольким серверам добавляются суффиксы -1, -2 и далее.
Требования
Нужны Velocity и Kubernetes. Учётной записи, под которой запущен Velocity, требуются права get, list и watch для Pod и ReplicaSet. Для синхронизации имён в нескольких экземплярах Velocity требуется Redis.
