问题标签 [cloud-sql-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
625 浏览

google-cloud-platform - Cloud SQL proxy cannot connect to a database using a second service account with same permissions

After following the tutorial Connecting [Postgres] from Kubernetes Engine, I was able to have my app server connect to my Postgres database thru a Cloud SQL Proxy and a service account that grants the "SQL Client", "SQL Editor" and "SQL Admin" permissions.

But, after following this tutorial a second time (to create a second database, for use from another cluster), and hence creating a second service account with the same permissions, I realised that I could only connect my second Cloud SQL database using my first service account!

Every time I tried to use the second service account (which, again, grants access to the exact same 3 permissions!), I was getting couldn't connect to "project:region:instance" errors...

Context: I know that instance-based permissions are not supported by Cloud SQL yet, but I would like to have dedicated service accounts for each of my 2 databases if possible, and do not understand why a second service account with same permissions does not work.

0 投票
3 回答
395 浏览

ruby-on-rails - 带有 GCP Cloud SQL 的 Kubernetes 应用不接受任何连接。Github 上提供完整源代码

我创建了一个使用 Google Cloud PostgreSQL 的示例 Rails 5 应用程序。我可以使用 本地运行该应用程序docker-compose up,但是当我将其部署到 GCP 时,我无法远程连接到它。我试图在他们使用的地方复制https://cloud.google.com/ruby/tutorials/bookshelf-on-kubernetes-enginetargetPort: http-server

rails 应用程序发布在 Github 上。我在做任何明显错误的事情吗?:-|

在本地运行应用程序有效

创建 GKE 集群

设置 PostgreSQL 云 SQL

我按照https://cloud.google.com/sql/docs/postgres/connect-kubernetes-engine?authuser=1中的说明 使用这些值更新了我的 config/database.yml 和 k8s/colors.yml。

已部署但卡在 ContainerCreating

kubectl 获取部署

但无法连接到应用程序

curl 35.228.111.217 # => 没有反应!:-/

kubectl 描述 svc 颜色

k8s/service.yml

kubectl 描述部署

kubectl 描述服务

0 投票
3 回答
1850 浏览

cloud-sql-proxy - 使用 Cloud SQL Proxy 连接时,ERROR 2013 (HY000): Lost connection to MySQL server at error 发生

错误 2013 (HY000):在“读取初始通信数据包”时失去与 MySQL 服务器的连接,系统错误:0“内部错误/检查(非系统错误)”

· 操作系统是debian 8。 · Cloud SQL 和Compute Engine 是相同的项目。· Compute Engine 实例具有完整的 API 访问权限。· 我们还设置了 Cloud SQL Admin。

sudo apt-get 更新 sudo apt-get install mysql-client

wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy chmod +x cloud_sql_proxy

连接正常。

mysql --host=[INSTANCE_IP_ADDR] --user=root --password

TCP 套接字

./cloud_sql_proxy -instances==tcp:3306

发生以下错误。

$ mysql -u root -p --host 127.0.0.1 --port 3306 Enter password: ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not系统错误)”


2018/07/24 06:57:43 在 127.0.0.1:3306 上收听 xxxxxx:asia-east1:xxxxxx 2018/07/24 06:57:43 准备好新的连接 2018/07/24 06:59:16 新“xxxxxxx:asia-east1:xxxxxx”的连接 2018/07/24 06:59:17 无法连接到“xxxxxxx:asia-east1:xxxxx”:x509:证书由未知机构签名(可能是因为“crypto/ rsa:验证错误”,同时尝试验证候选权威证书“Google Cloud SQL Server CA”)

我无法解决连接错误,我遇到了麻烦。帮我。


谢谢你的指导。我尝试使用 credential_file 选项,但发生了类似的错误。

须藤 vi xxxx917672.json

./cloud_sql_proxy -instances=xxxxxx:asia-east1:xxxxxx:3306 -credential_file=xxxxxxxxx917672.json


$ ./cloud_sql_proxy -instances=xxxxxx:asia-east1:xxxxxxx=tcp:3306 -credential_file=xxxxxxx917672.json 2018/07/24 09:23:48 使用凭证文件进行身份验证;email=xxxxxxxxx@developer.gserviceaccount.com 2018/07/24 09:23:48 在 127.0.0.1:3306 上收听 v


$ mysql -u root -p --host 127.0.0.1 --port 3306 Enter password: ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

2018/07/24 09:25:57 “xxxxxx:asia-east1:xxxxxxx”的新连接 2018/07/24 09:25:58 无法连接到“xxxxx:asia-east1:xxxxxxx”:x509:证书由未知机构签名(可能是因为“crypto/rsa:验证错误”,同时尝试验证候选机构证书“Google Cloud SQL Server CA”)


Compute Engine默认服务帐号,因为没有创建key,所以key是由json创建并执行的。此外,从 Compute Engine 的 VM 实例的详细信息中,我们确认了对服务帐户的权限以及对所有 Cloud API 的完全访问权限。

设置有什么问题吗?


0 投票
1 回答
5745 浏览

ruby-on-rails - 没有找到主要的连接池

我正在使用 Rails,并且非常随机地遇到连接池错误,并且它没有专门针对任何单个端点。我可以在大约 70% 的时间内到达端点而不会出现此错误。该数据库是在 Google Cloud 上运行的 PostgreSQL。这是我得到的错误的主要内容:

宝石文件:

数据库.yml:

我们正在使用:

红宝石 2.5.0 轨道 5.1.5

在 Google 的 CloudSQL 上使用 Postgresql

0 投票
1 回答
3070 浏览

kubernetes - Kubernetes单个pod中容器终止的控制顺序

我在一个吊舱内有两个容器。一个是我的应用程序容器,第二个是 CloudSQL 代理容器。基本上我的应用程序容器依赖于这个 CloudSQL 容器。

问题是,当 Pod 终止时,CloudSQL 代理容器首先终止,并且仅在几秒钟后我的应用程序容器才终止。

因此,在我的容器终止之前,它会不断向 CloudSQL 容器发送请求,从而导致错误:

这就是为什么,我认为指定终止顺序是个好主意,以便我的应用程序容器首先终止,然后才是 cloudsql 一个。

我在文档中找不到任何可以做到这一点的东西。但也许有一些方法。

0 投票
1 回答
137 浏览

kubernetes - 为不同的环境(Kubernetes + Google Cloud 或 Minikube)配置不同的 Pod 配置

我有一个(容器化)网络服务与 Google Cloud 中的外部 CloudSQL 服务通信。我使用了 Sidecar 模式,其中 Google Cloud SQL 代理容器位于 Web 服务旁边,并对外部 CloudSQL 服务进行身份验证+代理。这工作正常。让我们用容器“api”+“pg-proxy”将此部署称为“deployment-api”

当我想在我的本地 minikube 集群上部署应用程序时会出现问题,由于服务与我计算机上的本地 postgres 服务器通信,该集群需要具有不同的配置。如果我将“deployment-api”按原样部署到 minikube,它会尝试运行 barfs 和整个 pod 进入崩溃循环的“pg-proxy”容器。有没有办法让我在没有 Pod 的两个定义的情况下选择性地不部署“pg-proxy”容器,例如,使用选择器/标签?我不想将 pg-proxy 容器移动到它自己的部署中。

0 投票
1 回答
499 浏览

google-cloud-sql - 如何使用主管启动 Cloud SQL 代理

我试图在 上启动 CloudSQL 代理supervisor,但是我不知道它有什么问题。该文档没有显示此问题的任何线索。任何想法将不胜感激。

我在干净的 Ubuntu 16 上尝试了设置,然后安装了主管并下载了 cloud_sql_proxy。我将文件放在下面/root并以root身份执行以进行调试。

这是我当前的设置:

/etc/supervisord.conf

/etc/supervisor/conf.d/cloud_sql_proxy.conf

检查后出现以下错误/tmp/supervisord.log

0 投票
2 回答
607 浏览

google-cloud-sql - 有没有办法禁用 cloud_sql 的公共 IP,同时通过部署管理器使用私有 IP

我正在使用部署管理器使用私有 IP 部署 cloud_sql,默认情况下,这些部署启用了公共 IP。

有没有办法使用 Deployment Manager 禁用公共 IP?

0 投票
1 回答
414 浏览

entity-framework - 如何使用 CloudSQL 代理将 EntityFramework Core 连接到多个 Google CloudSQL 实例?

我有 2 个 Postgres 数据库,每个数据库都在它们自己的 CloudSQL 实例中,还有一个在 GKE 中运行的 .NET Web 应用程序。

目标:使用 EntityFramework Core 将 Web 应用程序连接到使用单个 CloudSQL 代理的两个 CloudSQL 实例。

我遵循了这个设置并按照这个SO 答案对其进行了修改。

每个 CloudSQL 实例都有一个 EF Core DbContext。使用 2 个环境变量设置上下文连接:

环境变量设置为:

当前行为:

Context1 与 CloudSQL instance1 正常交互。

Context2"42P01: relation {my_Table_Name} does not exist."在尝试访问表时抛出 PostgresException。

注意:"my_Table_Name"是 CloudSQL instance2 中的一个表

这让我相信 Context2 正在尝试访问 CloudSQL instance1 而不是 instance2。

如何通过 SQL 代理将 Context2 指向 CloudSQL instance2?

0 投票
2 回答
361 浏览

google-cloud-platform - 云 sql 代理作为 Windows 7 上的服务

在“windows 7”操作系统中将“cloud_sql_proxy”作为服务运行我有二进制“cloud_sql_proxy”,我可以使用它访问谷歌云平台中的mysql服务器实例,一切正常。但我需要确保 Google 提供的可执行文件始终在运行,因此我的应用程序/客户端程序不会丢失与这些服务的链接。

知道我该怎么做吗?