Я хочу сделать образ сервера ubuntu для запуска в публичном облаке, который обнаруживает, когда другие серверы из того же образа выходят в сеть. Я пришел к этому списку решений, но я не уверен, какое из них лучше.
Возможные решения:
Другие возможные решения: (серверы должны уже иметь IP-адрес)
Есть ли еще способы обнаружения узлов? Что обычно делается в больших облачных кластерах?
Общественные облачные провайдеры, как правило, не поддерживают методы широковещания/многоадресной рассылки, поэтому любое решение, основанное на них, будет "не лучшим". По крайней мере, для ценностей "лучших", которые включают в себя значительные компоненты платформенной независимости.
В странах юникоста у вас есть множество вариантов, и многое зависит именно от того, что вы хотите сделать с этими образами и какой сервис на самом деле делает открытие.
Если вы полностью находитесь в рамках одного провайдера облачной инфраструктуры, обычный способ - это спросить инфраструктуру о том, что там . Вы получите список серверов с IP-адресами, которые вы можете использовать для построения вашего динамического кластера.
Если по каким-то причинам вы не можете этого сделать, может быть, вы находитесь на нескольких провайдерах или вам нужен список известных и реальных хостов, вам придется перейти к какому-то специфическому для приложений методу построения динамического кластера. Методы для этого разные, но я видел:
Что лучше для вас, зависит от того, что вы делаете. Но сначала ищите API, и только если они не работают на вас.
Как я понимаю, правильный способ сделать это - это использовать API, который предлагает вам ваш поставщик облачных услуг. Попытка сделать это с хостов - это немного "каменный топор". Используйте хорошую инфраструктуру космического возраста, за которую вы платите.