无法从谷歌容器引擎访问谷歌云SQL

时间:2015-06-05 11:50:45

标签: google-cloud-sql google-kubernetes-engine

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

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

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

我猜db的访问控制阻止了我对gce网络的访问,但是我无法弄清楚如何配置它。

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

修改 如果我添加" 0.0.0.0/0"对于Allowed Networks,一切运作良好。这显然不是我想要的,所以我需要输入什么呢?

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

3 个答案:

答案 0 :(得分:4)

recommended solution是使用与0.0.0.0/0 CIDR的SSL连接。这是为了限制与正确密钥的连接。我还读到他们不会向您承诺特定的IP范围,因此CIDR / 14可能无法工作一段时间。出于同样的原因,我不得不与我的Cloud SQL建立SSL连接。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

如果您为Container Engine群集添加/ 14 CIDR块,因为源地址范围有效吗?

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