0
votes

Comment se connecter à Cloud SQL de l'application conteneur dans GCloud?

J'utilise GCloud, j'ai un cluster kubernate et une instance de cloud SQL.

J'ai une simple application nœud.js, qui utilise la base de données. Lorsque je déploie avec de l'application gcloud déployer il a un accès à une base de données. Cependant, lorsque je construis un dockerImage et l'expose, il ne peut pas atteindre la base de données.

  1. i Expose Docker Application Suivant: https://cloud.google .Com / Kubettes-Engine / Documents / Tutoriels / Hello-App
  2. Cloud SQL Dos n'a pas activé la propriété intellectuelle privée, im Connexion à l'aide de Cloud SQL Proxy
  3. in app.yaml je spécifie base_settings: cloud_sql_instances . J'utilise la même valeur dans SocketPath config pour la connexion MySQL.
  4. L'erreur dans les journaux Docker est:

    (noeud: 1) Non grodéePromiseReakewarning: Erreur: Connect Enoent / Cloudsql / X-Alcove-224309: Europe-West1: Apprentissage Au Pipeconnectwrap.afterconnect [comme onComplete] (NET.JS: 1097: 14)

    Pouvez-vous vous expliquer comment vous connecter à Cloud SQL à partir de l'application de nœud dockerisé.


0 commentaires

3 Réponses :


1
votes

Lorsque vous déployez votre application sur App sur App sur App sur App sur l'App sur Application GCloud Déploy , la plate-forme l'exécute dans un conteneur avec un conteneur de voiture latéral en charge de l'exécution du cloud_sql_proxy (vous le demandez en spécifiant le base_settings: cloud_sql_instances dans votre fichier app.yaml).

Le moteur Kubettes n'utilise pas de fichier App.YAML et ne fournit pas ce conteneur de voiture latéral pour vous. pour le mettre en place. Le Doc public montre comment le faire en créant Secrets pour vos informations d'identification de base de données et mettez à jour votre fichier de déploiement avec la configuration du conteneur latéral. Un exemple indiqué dans le document ressemblerait à: xxx


0 commentaires

1
votes

En règle générale, la meilleure méthode consiste à se connecter à l'aide d'un conteneur Sidecar à l'intérieur du même pod que votre application. Vous pouvez trouver des exemples sur la page "Connexion du moteur de Google Kubernettes" ici < / a>. Il y a aussi un codelab ici qui va plus en profondeur et pourrait être utile.


2 commentaires

Pourquoi le conteneur Sidecar est-il la meilleure approche?


@RICOW, je le préfère habituellement pour quelques raisons différentes: Sécurité - Le proxy SQL Cloud Cryption entre elle-même et l'instance, mais ne fait pas de côté client SSL. En utilisant le Sidecar, vous évitez d'exposer tout trafic non crypté. Contrôle - En emballant le Sidecar avec application, vous garantissez que seules les applications censées avoir accès à la base de données, font. Isolement - Comme chaque POD a sa propre instance, tout problème avec une podage spécifique reste limité à cette pod. Cela aide à prévenir les problèmes dans une cosse qui renverse et en affectant une autre.



0
votes

La documentation mentionne qu'il est possible de se connecter en utilisant une adresse IP interne. Quelqu'un a-t-il essayé?


1 commentaires

Ce n'est pas une réponse. Veuillez utiliser la section Commentaires pour commentaires ou questions supplémentaires.