2016-04-13 10 views
2

ich einen mongodb Dienst nach dem Kubernetes Tutorial erstellt, http://kubernetes.io/docs/getting-started-guides/meanstack/Zugang MongoDB in Kubernetes

Jetzt ist meine Frage, wie erhalte ich Zugriff auf die Datenbank selbst, mit einem Client wie Robomongo oder ähnlichen Kunden? Nur um Backups zu erstellen oder um herauszufinden, welche Daten eingegeben wurden.

Der Mongo-Pod und der Dienst haben nur einen internen Endpunkt und einen einzelnen Mount.

Gibt es eine Möglichkeit, sicher auf diese Instanz ohne öffentlichen Endpunkt zuzugreifen? intern ist URI Mongo: 27 ***

+0

Ich würde eifrig ermutigen, die Mongo-Shell (https://docs.mongodb.org/getting-started/shell/client/) als Mongo-Client und 'mongodump' und' mongorestore' für Backups zu verwenden. Verwenden Sie GUIs wie Robomongo als Ergänzung, nicht als Haupt-Client. –

+0

Sie können auf die Shell des laufenden Containers über den Docker-Exec-Befehl zugreifen, wenn Sie den Containernamen (etwa k8s_mongo) kennen: 'docker ps --format" {{.ID}} \ t {{. Names}} "| grep "$ {name}" | Schnitt -f1 | xargs -I NAME-Docker exec -i NAME echo 1' – ainlolcat

Antwort

4

Die Kubernetes cmd-line Tool, um diese Funktionalität bietet als @ainlolcat

angegeben
kubectl get pods 

Ruft die Schote Namen derzeit ausgeführt und mit:

kubectl exec -i mongo-controller-* bash 

Sie erhalten eine Basis-Bash, die Sie

zu ge t in die Datenbank um Dumps zu erstellen, und so weiter. Die Bash ist sehr einfach und hat keine Features wie Fertigstellung und so weiter. Ich habe keine Lösung für bessere Shell gefunden, aber es macht den Job

1

Wenn Sie einen Dienst in kubernetes erstellen, geben Sie ihm einen Namen, sagen Sie zum Beispiel "mymongo". Nachdem der Dienst erstellt wurde, wird

Der DNS-Dienst von kubernetes (standardmäßig aktiviert) stellt sicher, dass jeder Pod diesen Servixe einfach anhand seines Namens erkennen kann. so können Sie Ihre uri wie

uri: mongodb://**mymongo**:27017/mong 

Neben dem Service-IP und Port eingestellt als Umgebungsvariablen in der laufenden pod eingestellt werden.

MYMONGO_SERVICE_HOST

MYMONGO_SERVICE_PORT

ich in der Tat haben ein Blog geschrieben, die einen Schritt für Schritt Beispiel einer App mit NodeJS Web-Server und Mongo zeigen, dass weitere

http://codefresh.io/blog/kubernetes-snowboarding-everything-intro-kubernetes/

erklären Feedback willkommen!