Gostaria de saber quais portas preciso abrir para um cluster mongodb fragmentado. Por exemplo, os mongos precisam ser capazes de aceitar conexões de e para mongoc. Não quero ter muitas portas abertas que não preciso ter.
Gostaria de saber quais portas preciso abrir para um cluster mongodb fragmentado. Por exemplo, os mongos precisam ser capazes de aceitar conexões de e para mongoc. Não quero ter muitas portas abertas que não preciso ter.
As versões TL;DR:
Você deve assumir que todos os processos mongod (incluindo servidores de configuração) e todos os processos mongos precisam se comunicar. Naturalmente, isso se aplica apenas à porta do banco de dados real (padrão 27017) e não ao console HTTP (+1000) ou REST, se você o tiver ativado.
Mais detalhadamente:
Os mongos precisarão conversar com todos os membros de cada fragmento (geralmente um conjunto de réplicas) para leituras e gravações. Os mongos também precisam falar com os servidores de configuração - é de onde ele obtém sua configuração e como ele faz o bloqueio, mantém os usuários administrativos e muito mais.
Todos os membros de um conjunto de réplicas precisam se comunicar entre si (replicação/eleições). Todos os primários precisam se comunicar com os servidores de configuração, bem como com outros primários em outros estilhaços. Como todos os secundários podem se tornar primários, todos devem ter as mesmas portas abertas que os primários.
Além disso, verifique se as permissões são bidirecionais, sem entrar em muitos detalhes, a origem das conexões geralmente surpreende as pessoas (migrações pull versus push em chunk, por exemplo).
Na verdade, os únicos processos em que consigo pensar nos quais você pode restringir as portas são os Árbitros - eles só precisam ser capazes de falar com os membros do conjunto e nunca podem se tornar primários. No entanto, os mongos fazem ping como parte de um thread de verificação de integridade, então, no final, acho que a simplicidade de uma política para cobrir tudo seria mais benéfica do que algumas portas que você pode omitir para o caso especial do árbitro.