Ingress (или Ingress Prime) — многопользовательская онлайн-игра с дополненной реальностью, созданная Niantic Labs для устройств на базе Android и iOS. Впервые игра вышла 14 декабря 2013 года для устройств на Android, а затем 14 июля 2014 года индикатор уровней поддержки и сопротивления для устройств на iOS. Игра распространяется по модели free-to-play, поддерживает покупки в приложении с целью приобретения дополнительных внутриигровых предметов. По состоянию на ноябрь 2018 года мобильное приложение было загружено более 20 миллионов раз по всему миру2.
Порталы
Это позволит проще скейлить количество подов, ответственных за входящий трафик, прописывать им nodeAffinity и запускать сразу группу контроллеров. Два портала с восемью резонаторами, контролируемые одной фракцией, могут быть соединены игроком этой фракции, если он находится в радиусе действия одного из них и имеет ключ от другого. Максимально возможная длина связи зависит от среднего уровня портала и любых модов, усиливающих дальность связи портала.
Ingress стала предметом академического исследования взаимоотношений между регионализмом и глобализмом6061. Эрин Старк утверждает, что система игры, в которой игроки номинируют порталы, основанные на уличном искусстве, по сути, является тем, что игроки курируют чувство места и более гибкое культурное наследие62. Спаннер Спенсер в своём обзоре для PocketGamer отметил, что в Ingress нет простых способов играть и что она требует самоотверженности и командной работы63. Игроки, достигшие определённого уровня допуска могут подать заявку на создание нового портала16. Во время запуска игры предполагалось, что это позволит Google генерировать данные для своих сервисов, основанных на геолокации17. По состоянию на июль 2016 года сообщество Ingress прислало 15 миллионов порталов, и пять миллионов из них были включены в игру18.
Ingress Controller состоит из 2х компонентов — реверсивного прокси и контроллера который общается с API сервером кубернетеса. Реверсивный прокси слушает входящий трафик на портах которые указаны в настройках (обычно в настройках по умолчанию указан только порт 80). Контроллер может быть как отдельным демоном (как в nginx), так и встроенным в прокси (как в traefik). DaemonSet идеально использовать как единственный Ingress Controller, что бы реверсивное прокси слушало на всех IP адресах воркеров. Решение из разряда full service mesh, которое полностью управляет трафиком в кластере. Проект разработан на базе Envoy и пропагандирует максимальную управляемость, масштабируемость и безопасность.
Отправка заявки на создание портала
Когда три портала соединяются в треугольник, они создают поле контроля, принося Единицы Разума (англ. Mind Units, сокр. MU) в пределах этого поля для своей фракции. В контексте игры поля контроля настраивают мышление населения на соответствующее мышление фракции, которой принадлежит поле. Единицы Разума измеряются количеством человек, живущих под этим полем20. Противоборствующая фракция может уничтожить поле, разрушив одну или несколько образующих его связей19.
Как настроить LoadBalancer для Ingress-контроллера
Посмотреть все настройки можно в документации на странице Nginx Configuration.
- Это стабильное решение с обратной совместимостью, высокой скоростью и без Lua-плагинов или других модулей.
- Впервые информация об игре появилась 8 ноября 2011 года, а позже она была показана на таких мероприятиях, как Comic Con в Сан-Диего 12 июля 2012 года26.
- В игровом процессе Ingress большую роль играет правильное позиционирование виртуальных игровых объектов на картах реального мира.
- Это позволит проще скейлить количество подов ответственных за входящий трафик, прописывать им nodeAffinity и запускать несколько ingress controller (например для production и staging).
- Внутриигровое спонсорство AXA и MUFG закончилось в декабре 2017 года47, а Lawson и Circle K в декабре 201948.
Что бы этот ресурс начал работу в кластере кубернетиса должен быть установлен Ingress Controller, который настроит реверсивный прокси в соответствии с Ingress объектом. Сингл DNS-сопоставление — когда вы сопоставляете домен напрямую как A запись с IP-адресом LoadBalancer. Здесь можно указать для Ingress-контроллера лишь один домен и маршрутизировать трафик по нескольким путям. Ingress-контроллер создан на базе предыдущего (HAproxy) и предлагает множество вариантов настроек и управления трафиком. Ставить Ingress Controller на NodePort без LoadBalancer — плохая практика, поскольку URL будет включать только порт, который указан в NodePort . Внутри Ingress Controller обычный Nginx, поэтому вы можете настроить распределение запросов по доменам или location.
Как входящий трафик попадает на Ingress Controller
Игрок видит только своё собственное местоположение, но не местоположение других. Для того чтобы получить внутриигровые предметы, игрок должен «взломать» ближайший портал8. При использовании HostPort порт пробрасывается с хоста где запущен под в этот самый Pod. LoadBalancer на вход не нужен, но для работы сайта в DNS нужно указывать что адрес домена находится на всех узлах. Решение создавалось для маршрутизации запросов микросервисов и что такое обменный курс их динамической среды.
HostPort
На момент выхода Ingress Prime в ноябре 2018 года Niantic заявила, что «агенты в более чем 200+ странах приняли участие в более чем событиях и посетили более 1,2 миллиарда порталов»2. За разные действия игроки получают очки действия (англ. Action Points, сокр. AP). Как только игрок достигает 16 уровня доступа, он получает возможность «Рекурсии», при которой уровень сбрасывается до первого, а рядом с именем в профиле появляется специальный значок.
Расстояния от игрока до внутриигровых объектов измеряется в метрах7. Во время запуска в 2012 году пользователи критиковали Ingress за то, что она очень похожа на Shadow Cities, более старую, ныне не существующую игру с дополненной реальностью86. В обеих есть две фракции, которые борются за будущее мира с помощью смартфонов. Хотя игры имеют схожую игровую механику и внешний вид, есть и явные различия.
В игровом процессе Ingress большую роль играет правильное позиционирование виртуальных игровых объектов на картах реального мира. При создании портала важно чтобы он был расположен в месте, с которого делался снимок. При ошибке в позиционировании портала он может оказаться за забором, в водоеме, и других недоступных местах. Таким образом созданный портал окажется бесполезен для обеих противоборствующих фракций.
Цель сохранения старого приложения заключалась в том, чтобы облегчить переход на новую34. Niantic отключила и прекратила поддержку старого приложения 30 сентября 2019 года35. Niantic также скорректировала процедуру инициации новых игроков в Ingress Prime, сделав её более тщательной, основываясь на реакции на процедуру инициации в Pokémon Go36. Поскольку игрокам может потребоваться время для успешного «взлома» портала, некоторые играют медленно передвигаясь по территории, что не рекомендуется разработчиками игры90. Кроме того, игроки использовали неофициальные приложения для преследования друг друга92. Компании могли заплатить за то, чтобы их торговые точки использовались в качестве портала в игре, тем самым обзор брокера nbh markets увеличивая число потенциальных клиентов383940.
Решение позволяет контролировать маршрутизацию, мониторинг, авторизацию доступов и балансировку нагрузки. Один из самых популярных инструментов, применяется не только как балансировщик, но и в качестве proxy. Решение позволяет обновлять конфигурацию без потери трафика, service discovery на основе DNS, поддерживает динамическое конфигурирование через API. Шаблоны конфига полностью можно полностью отредактировать через смену CM, что достаточно удобно.
Его удобно использовать, когда распределенные команды разработки используют один кластер. Это помогает защитить трафик и снижает риск появления ошибок при использовании ресурсов Ingress. Решение создавалось для обработки и маршрутизации API-запросов, но постепенно развилось из API Gateway до полноценного Ingress-контроллера. Гибкий подход к модульной реализации позволяет конфигурировать решение с разными возможностями. Это стабильное решение с обратной совместимостью, высокой скоростью и без Lua-плагинов или других модулей.