Welche Datenbank verwenden meine Anwendungen, wenn ich neben ihrem Pod, der auf lokalem Kubernetes ausgeführt wird, eine lokal installierte Datenbank habe?

Welche Datenbank verwenden meine Anwendungen, wenn ich neben ihrem Pod, der auf lokalem Kubernetes ausgeführt wird, eine lokal installierte Datenbank habe?

Ich habe es auf meiner Ubuntu-Maschine installiert mysql. Ich habe auch eine lokal laufende Kubernetesund bereitgestellte mysqlBereitstellung Kubernetesund kann diese mit dem Befehl erreichen kubectl exec -it mysql-b4769786-5hf4m sh, dann mysql -p.

Ich bin jetzt etwas verwirrt. Ich weiß nicht, ob ich zwei getrennte Datenbanken habe, eine, die lokal auf meinem Betriebssystem läuft, und die andere, die auch lokal, aber auf meinem Kubernetes-Cluster läuft? Wenn ja, wie kann ich auf jede von ihnen zugreifen? Woher weiß ich, ob die Shell, mit der ich arbeite, mit Kubernetes MySQL oder meinem Betriebssystem MySQL verbunden ist?

Oder wird beim Schreiben einer NodeJS-App eine Verbindung zu dem auf Ubuntu installierten MySQL hergestellt oder wird der MySQL-Pod auf dem lokalen Kubernetes ausgeführt?

Antwort1

Sie haben tatsächlich zwei verschiedene Datenbanken. Der Container könnte sogar ein völlig anderes Betriebssystem (Basis-Image) haben.

Sie können dies durch einen einfachen Test überprüfen:

  • Erstellen Sie eine „Container“-Datenbank innerhalb des MySQL-Containers

  • Führen Sie SHOW DATABASES; auf der anderen MySQL-Instanz aus. Sie sollten nichts finden.

Antwort2

Sie haben zwei MySQL-Datenbanken: eine auf Ihrem Ubuntu-Rechner und eine weitere in KubernetesABER Wenn Sie MySQL auf Kubernetes von Ihrem Ubuntu-Rechner aus verwenden möchten, müssen Sie einen Nodeport erstellen. Wenn Sie den MySQL-Dienst nicht verfügbar machen, kann Ihre lokale Anwendung auf Ihrem Ubuntu-Rechner keine Verbindung zum Kubernetes MySQL-Pod herstellen. Wenn Sie den MySQL-Pod verfügbar machen, verwenden Sie einen anderen Port, um MySQL-Probleme zu vermeiden.

verwandte Informationen