7

我仍然无法从 GCE 容器访问云 SQL 实例。当我尝试打开 mysql 时,出现以下错误:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial 
                    communication packet', system error: 0

但是,在我的本地计算机上连接工作正常(该实例有一个公共 IP,我已将我办公室的 IP 添加到“允许的网络”中)。因此,可以通过 Internet 访问该实例。

我猜数据库的访问控制阻止了我从 gce 网络的访问,但我无法弄清楚如何配置它。

我将我的项目添加到 Cloud SQL 控制面板中的“授权的 App Engine 应用程序”,但这似乎没有帮助。

编辑: 如果我将“0.0.0.0/0”添加到允许的网络,一切正常。这显然不是我想要的,所以我需要输入什么?

EDIT2:我还可以从我的 kubernetes 集群中添加所有公共 IP(通过 获得gcloud compute instances list)并手动将它们添加到云 sql 访问列表中。但是,这似乎不对,不是吗?

4

3 回答 3

4

推荐的解决方案是使用带有 0.0.0.0/0 CIDR 的 SSL 连接。这是为了限制连接到正确的密钥。我还读到他们不会向您保证特定的 IP 范围,因此 CIDR /14 有时可能无法正常工作。出于同样的原因,我不得不使用我的 Cloud SQL 进行 SSL 连接。

于 2015-06-09T13:01:46.630 回答
2

您应该使用 GCE 实例的公共 IP 地址来正确允许流向您的 Cloud SQL 实例的流量(正如您在 EDIT2 中提到的那样)。

您可以在 Cloud SQL 文档中找到更多信息:https ://cloud.google.com/sql/docs/gce-access

于 2015-06-08T12:49:27.060 回答
0

如果您将 Container Engine 集群的 /14 CIDR 块添加为源地址范围,是否可行?

要查找集群的 CIDR 块,请单击Google Cloud Console中的集群名称,然后找到标有“容器地址范围”的行。

于 2015-06-07T05:18:34.260 回答