Ich erstelle einen Container mit einer Verbindung zu einer cloudsql-Datenbank, wenn ich das Image mit kubernetes ausführe. Es hat keine externe IP, die ich verwenden kann, um dem neuen Image zu erlauben, sich mit der Datenbank zu verbinden. Da dies jedoch Teil der init-Konfiguration ist, kann ich nicht warten, um zu wissen, welche öffentliche IP-Adresse zu den Whitelist-Datenbanken hinzugefügt werden soll.
Ich weiß, dass es Möglichkeiten gibt, eine Datenbank über Dienste im selben Cluster zu verbinden, aber ich kann nicht herausfinden, wie ich mich mit den von Google bereitgestellten Clouds verbinden kann.
Es gibt zwei Möglichkeiten, das zu lösen:
Die erste Option besteht darin, einen cloudsql-Proxy mithilfe der folgenden Anweisungen zu verwenden: Ссылка
In Ihrem Docker-Image müssen Sie sicherstellen, dass die Sicherung in Ihrer Installation verfügbar ist. Dies war nicht mein Fall (mit einem ubuntu: trusty-20160119 als Basis-Image). Wenn Sie dies benötigen, verwenden Sie die folgenden Schritte in Ihrer Dockerfile:
%Vor% Dann müssen Sie beim Start Ihres Containers ein Skript erstellen, das den Socket wie in Ссылка
Der zweite Weg besteht darin, die ips von den Knoten, die den kubernetes-Cluster in der Whitelist für die cloudsql unterstützen, zuzulassen.
Ich bevorzuge die erste Option, weil sie auf jedem Computer funktioniert, auf dem ich das Image deploye, und ich muss keine ips hinzufügen oder entfernen, wenn ich mehr Knoten im kubernetes-Cluster bereitstellen muss.
Tags und Links kubernetes google-cloud-sql