Bereitstellen von mongodb replicaset-Server mit Docker auf verschiedenen physikalischen Servern

Ich versuche zum bereitstellen einer mongodb replicaset mit docker.
Ich habe es geschafft, an ein und demselben server durch ausführen dieser :

docker run -d --expose 27017 --name mongodbmycompany1 dockerfile/mongodb mongod --replSet rsmycompa
docker run -d --expose  27017 --name mongodbmycompany2 dockerfile/mongodb mongod --replSet rsacommeassure
docker run -d --expose 27017 --name mongodbmycompany3 dockerfile/mongodb mongod --replSet rsacommeassure

MONGODB1=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' mongodbmycompany1)
MONGODB2=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' mongodbmycompany2)
MONGODB3=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' mongodbmycompany3)

echo $MONGODB1
echo $MONGODB2
echo $MONGODB3

echo "Mongodb Replicaset init"
docker exec mongodbmycompany1 mongo 127.0.0.1:27017/mycompany --eval 'if(!rs.conf()) {     rs.initiate(); cfg = rs.conf(); cfg.members[0].host = "'$MONGODB1':27017"; rs.reconfig(cfg); rs.add("'$MONGODB2':27017"); rs.add("'$MONGODB3':27017"); } rs.status();'

Funktioniert es wie erwartet. Meine replicaset initialisiert wird und meine mongodb resultset-config enthält meine 3 Server identifiziert durch Ihre interne IP-Adresse.
Es ist nicht perfekt, da würde ich es vorziehen, verwenden Sie Server-Namen, aber ich schaffte es nicht, es zu tun.
Andockfenster nur Auffüllen jeder /etc/hosts-Datei mit dem Server-Namen übergeben, im Bild Start mit --link-parameter. Wenn ich einen neuen server hinzuzufügen, während die anderen ausgeführt werden. Dieser Server nicht pingen Sie den neuen server.

Nun habe ich noch eine Frage. In der Produktion, mit einer Menge von Mongodb docker-image läuft auf dem gleichen physischen server ist möglich, aber es ist nicht sicher :
- wenn meine physischen server herunter fällt, verliere ich alle meine Mongodb-Replikate und mein service ist down
- wenn meine physischen server verwendet den internen Speicher, alle meine docker-images verwenden Sie die gleiche Festplatte... und ich bin zu haben, IO-Probleme.

Also meine Frage ist : Wie kann ich bereitstellen viele mongodb Replikate auf mehreren physischen Servern ? Wie diese mongodb Repliken kommunizieren kann mit jeder anderen (primäre und sekundäre Server ändern kann), während Sie auf anderen Servern oder sogar auf verschiedenen Datencentern ?

  • Was ist genau dein problem dabei? Was usign OpenStack zu planen, der Docker-container auf Ihrem mehrere physikalische Knoten?
  • Ich werde haben Sie einen Blick auf OpenStack um das problem zu lösen. Haben Sie ein Dokument, in dem OpenStack wird für die Verwaltung von mongodb-Andockfenster-Dateien, um ein replicaset verteilt auf viele Server ?
  • Nein, ich habe gerade verwendet OpenStack zu instatiate Andockfenster für Zwecke anders aus, erstellen einer MongoDB replica set.
  • Sie benötigen ein virtuelles LAN, das wirkt wie eine einzige sichtbar-Netzwerk-bridge, die für Ihre docker-container. Haben Sie einen Blick auf coreos/Flanell. Diese lösen Ihre Vernetzung mit geringstem Aufwand.
Schreibe einen Kommentar