Управляемые кластеры

Узнайте о управляемых кластерах и быстро начните работу с пользовательскими бэкенд-решениями.

✔️ Введение

Управляемые кластеры упрощают и ускоряют размещение самоуправляемых игровых сервисов и игрового бэкенда. Вы подготавливаете образ сервиса, а мы предоставляем отказоустойчивую облачную среду с высокой доступностью для их запуска:

  • аутентификация игроков,

  • хранение данных — аккаунты, прогресс, инвентарь, награды и т.д.,

  • социальные сервисы — чат, кланы, таблицы лидеров, турниры и т.д.,

  • пользовательский матчмейкинг — с использованием Управляемые кластеры, Управляемые кластеры, ...

  • безсерверные вычисления — управляемые функции как сервис (альт. cloudscript, lambda) и т.д.,

Приватные кластеры гарантируют, что ваши сервисы имеют выделённые вычислительные ресурсы для обслуживания игроков круглосуточно.

В настоящее время мы предлагаем 3 уровня частных кластеров чтобы удовлетворить потребности каждого:

Уровень
Уровень для хобби
Уровень для студии
Уровень Enterprise

Лучше всего подходит для

энтузиасты, одиночные разработчики

коммерческие релизы

запуски с высоким трафиком

Ресурсы

1 vCPU + 2 ГБ ОЗУ

6 vCPU + 12 ГБ ОЗУ

18 vCPU + 48 ГБ ОЗУ

Избыточность

1 виртуальный узел

3 виртуальных узла

3 виртуальных узла

Ограничение частоты (запрос/с)

200

750

2,000

Цена, почасово

$0.0312

$0.146

$0.548

Цена за 30 дней (использование без перерывов)

$22.464

$105.12

$394.56

Наши кластерные машины используют процессоры AMD/Intel с тактовой частотой 2.4–3.2 ГГц. Свяжитесь с нами в сообществе Discord чтобы согласовать нагрузочные тесты и убедиться, что вашему серверу доступны достаточные ресурсы.

🛠️ Инструменты для разработчиков

Если вы видите возможности для улучшения, пожалуйста, сообщите нам в нашем сообществе Discord.

Надеемся, что у вас будет гладкий опыт. 🚀

Docker

Чтобы сделать ваш сервер надёжным, мы используем Docker - программное обеспечение виртуализации, обеспечивающее одинаковые до уровня операционной системы зависимости вашего серверного кода независимо от того, как и где сервер запускается.

Мы рекомендуем посмотреть "Никогда не устанавливайте локально" (видео). Вам НЕ нужно использовать Dockerhub с Docker. Docker ≠ Dockerhub. Думайте о Docker как о программном движке, а о Dockerhub как о его магазине приложений.

Kubernetes (K8s)

Kubernetes, также известный как K8s, — это система с открытым исходным кодом для автоматизации развертывания, масштабирования и управления контейнеризованными приложениями (Docker Images). Она группирует контейнеры, составляющие приложение, в логические единицы для облегчения управления и обнаружения.

Управляемые кластеры Edgegap предоставляют Kubernetes API для административных задач.

K8s Lens

С более чем 1 миллионом пользователей, K8s Lens является самой популярной IDE для Kubernetes в мире. Подключайтесь к кластерам, исследуйте, получайте аналитические данные, учитесь и при необходимости действуйте. Lens предоставляет всю информацию о ваших нагрузках и ресурсах в реальном времени, всегда в нужном контексте.

Kubernetes API кластера Edgegap можно использовать через Lens или другие IDE для Kubernetes.

Helm Package Manager

Helm — лучший способ находить, делиться и использовать программное обеспечение, созданное для Kubernetes. Helm помогает управлять Kubernetes-приложениями — Helm Charts помогают определять, устанавливать и обновлять даже самые сложные Kubernetes-приложения. Чарты легко создавать, версионировать, делиться и публиковать — так что начните использовать Helm и прекратите копировать и вставлять.

Установка Helm CLI предоставляет разработчикам простой интерфейс для управления пакетами своего кластера.

🚀 Начало работы

☑️ Зарегистрировались для бесплатного аккаунта Edgegap и обновитесь до тарифа с оплатой по мере использования, чтобы разблокировать Кластеры.

☑️ Перейдите в Управляемые кластеры страницу.

☑️ Нажмите Создать кластер сначала, затем введите:

☑️ Просмотрите оценочную стоимость и нажмите Создать кластер чтобы запустить ваш новый кластер.

☑️ После готовности кластера, нажмите Kubeconfig, чтобы скачать вашу конфигурацию и учётные данные для подключения и администрирования вашего нового кластера.

☑️ Переместите ваш файл kubeconfig в kubectl чтобы он мог его найти.

☑️ Пользователи Lens: импортируйте файл kubeconfig.

☑️ Проверьте подключение к кластеру командой kubectl get nodes :

🙌 Поздравляем, вы завершили настройку управляемого кластера! Теперь вы можете устанавливать ваши сервисы.

📦 Nakama от Heroic Labs

Выполните следующие шаги, чтобы разместить свой собственный Игровой бэкенд Nakama в управляемых кластерах:

☑️ Установите Менеджер сертификатов чтобы поддерживать использование HTTPS-запросов от игровых клиентов:

☑️ Lens: проверьте установку в разделе Services / Network, cert-manager должен быть запущен.

☑️ Создайте Cluster Issuer файл, не забудьте заменить <YOUR_EMAIL> ниже:

☑️ Создайте Cluster Issuer в командной строке:

☑️ Lens: проверьте установку в разделе Custom Resources / cert-manager.io - cluster issuer создан.

☑️ Установите nginx Ingress для приёма клиентских запросов и передачи их сервисам в кластере:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx --create-namespace

☑️ Lens: проверьте установку в разделе Services / Network, nginx должен быть запущен.

☑️ Создайте DNS запись типа A в вашем DNS-провайдере (например, Cloudflare), запишите URL для дальнейшего использования. Ваш внешний IP для DNS-записи можно найти в Lens в разделе Services / ingress-nginx-controller .

☑️ Проверьте правильность настройки DNS, выполнив запрос с помощью DNSchecker.

☑️ Создайте файл с именем values.yaml с содержимым (используйте свои значения):

☑️ Разверните Helm-чарт Nakama:

☑️ Lens: проверьте установку в разделе Workloads / Deployments, nakama должен работать.

Подключитесь к консоли Nakama с помощью URL и учётных данных из values.yaml файла.

🙌 Поздравляем, вы завершили настройку самохостинга игрового бэкенда Nakama!

Обновления сервиса

Выполните следующие шаги, чтобы обновить ваш сервис, размещённый в управляемом кластере:

☑️ Обновите ваш value.yaml файл новыми файлами.

☑️ Обновите ваш Helm-чарт, используя эту команду:

☑️ Перезагрузите изменения, завершив обновлённые поды, что приведёт к использованию нового Helm-чарта после автоматического перезапуска подов.

🙌 Поздравляем, вы завершили обновление кластера Nakama!

👷 Расширенный матчмейкер

Выполните следующие шаги, чтобы разместить ваш OpenMatch в управляемом кластере.

☑️ Установите Менеджер сертификатов чтобы поддерживать использование HTTPS-запросов от игровых клиентов:

☑️ Lens: проверьте установку в разделе Services / Network, cert-manager должен быть запущен.

☑️ Создайте Cluster Issuer файл, не забудьте заменить <YOUR_EMAIL> ниже:

☑️ Создайте Cluster Issuer в командной строке:

☑️ Lens: проверьте установку в разделе Custom Resources / cert-manager.io - cluster issuer создан.

☑️ Установите nginx Ingress для приёма клиентских запросов и передачи их сервисам в кластере:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx --create-namespace

☑️ Lens: проверьте установку в разделе Services / Network, nginx должен быть запущен.

☑️ Создайте DNS-запись типа A в вашем DNS-провайдере (например, Cloudflare), запишите URL для дальнейшего использования. Ваш внешний IP для DNS-записи можно найти в Lens в разделе Services / ingress-nginx-controller .

☑️ Проверьте правильность настройки DNS, выполнив запрос с помощью DNSchecker.

☑️ Создайте файл с именем values.yaml с содержимым (используйте свои значения):

☑️ Добавьте репозиторий Edgegap в список ваших репозиториев:

☑️ Разверните Helm-чарт расширенного матчмейкера:

🙌 Поздравляем, вы завершили настройку расширенного матчмейкера!

Обновления сервиса

Выполните следующие шаги, чтобы обновить ваш сервис, размещённый в управляемом кластере:

☑️ Обновите ваш value.yaml файл новыми файлами.

☑️ Обновите ваш Helm-чарт, используя эту команду:

☑️ Перезагрузите изменения, завершив обновлённые поды (director, mmf, frontend), что приведёт к использованию нового Helm-чарта после автоматического перезапуска подов.

🙌 Поздравляем, вы завершили обновление расширенного матчмейкера!

Непрерывное развёртывание

Автоматизируйте обновление ваших сервисов, добавив этот shell-скрипт в ваш конвейер развёртывания:

Проверка сертификата Letsencrypt (C#)

Для некоторых клиентов рекомендованная проверка сертификата Letsencrypt может завершаться с ошибкой:

В крайнем случае, игровые клиенты могут реализовать пользовательскую функцию обработки сертификата:

Использование:

Мы рекомендуем хранить значение EXPECTED_CERT в вашем собственном файловом хранилище и извлекать его во время выполнения, чтобы вы могли обновлять его без выпуска обновления клиента игры.

🟢 Операции и наблюдаемость

Изменения уровня кластера

Подготовьтесь к успеху и оптимизируйте после запуска, чтобы не блокировать ваших игроков в день релиза.

Поддержка и будущие обновления

Ваш успех — наш приоритет. Если вы хотите отправлять индивидуальные запросы, попросить недостающие критические функции или высказать любые мысли, пожалуйста, свяжитесь с нами в нашем сообществе Discord.

Последнее обновление

Это было полезно?