我已经能够在开发人员控制台中成功创建一个 Google Container Cluster 并将我的应用程序部署到它。这一切都很好,但是我发现我无法连接到 Cloud SQL,我明白了;
"Error: Handshake inactivity timeout"
经过一番挖掘,我从 App Engine 或我的本地机器连接到数据库没有任何问题,所以我觉得这有点奇怪。就在那时我注意到了集群权限...
当我选择我的集群时,我会看到以下内容;
Permissions
User info Disabled
Compute Read Write
Storage Read Only
Task queue Disabled
BigQuery Disabled
Cloud SQL Disabled
Cloud Datastore Disabled
Cloud Logging Write Only
Cloud Platform Disabled
我真的希望在我的容器引擎 Node 中同时使用 Cloud Storage 和 Cloud SQL。我已经允许在我的项目设置中访问这些 API 中的每一个,并且我的 Cloud SQL 实例正在接受来自任何 IP 的连接(我之前一直在 App Engine 上的托管 VM 中运行 Node),所以我的想法是 Google 正在明确禁用这些 API。
所以我的两部分问题是;
非常感谢任何帮助!
最佳答案
权限由集群创建期间附加到 Node VM 的服务帐户定义(在 VM 实例化后无法更改服务帐户,因此这是您唯一可以选择权限的时间)。
如果您使用云控制台,点击创建集群页面上的“更多”链接,您将看到一个您可以添加到集群中 Node 的权限列表(均默认为关闭)。切换任何你想要的,你应该在创建集群后看到适当的权限。
如果您使用命令行创建集群,请将 --scopes
命令传递给 gcloud container clusters create
以在您的 Node 虚拟机上设置适当的服务帐户范围。
关于node.js - 更改 Google Container Engine 集群的权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29837531/