首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GKE私有集群和云sql代理连接

GKE私有集群和云sql代理连接
EN

Stack Overflow用户
提问于 2019-04-01 14:34:08
回答 3查看 815关注 0票数 1

我有两个GKE集群,包括私有和公共集群,并且使用cloudproxy作为gke应用程序访问cloudsql实例的侧容器。

用于开发/测试的公共集群设置

云SQL是通过私有和公共IP启用的。GKE应用程序使用的是cloudproxy,默认选项是ip类型(公共的、私有的),因为Cloud没有任何授权的网络。

在这种情况下,我的应用程序能够连接CloudSQL并顺利工作。据我所知,在这里,到cloudsql的连接应该是私有的,因为没有经过授权的网络配置。

用于生产专用集群设置

云SQL是通过私有和公共IP启用的。GKE应用程序使用具有默认ip类型选项的cloudproxy (公共的、私有的)

部署文件中的cloudsql-代理设置

代码语言:javascript
运行
复制
  - name: cloudsql-proxy
    image: gcr.io/cloudsql-docker/gce-proxy:1.11
    command: ["/cloud_sql_proxy"]
    args: ["-instances=$(REAL_DB_HOST)=tcp:$(REAL_DB_PORT)","-credential_file=/secrets/cloudsql/credentials.json"]

案例1 Cloud没有任何授权的网络。结果:应用程序无法与Cloud连接

案例2 Cloud具有私有GKE网关作为授权的网络结果:应用程序无法与Cloud连接

从应用程序中删除cloudproxy可能会有效(我还没有进行测试),但它不鼓励在dev env期间使用代理,因为它需要在生产部署期间更改部署文件。

我无法理解是什么导致了gke私有集群中的cloudproxy连接失败。我们不应该在私有集群中使用云代理吗?

云代理无法连接云的原因是cloud被禁用。我已在答覆部分更新我的答覆。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-02 04:51:14

@kurtisvg提供了一个信息丰富的答案。

然而,真正的问题是,并启用它解决了问题。在查看日志之后,我发现了下面的条目。

错误403:访问未配置。以前没有在项目XXXXXX中使用过,也没有禁用过。通过访问https://console.developers.google.com/apis/api/sqladmin.googleapis.com/overview 来启用它

票数 0
EN

Stack Overflow用户

发布于 2019-04-01 16:06:09

这里的问题似乎是“我们应该在私有集群中使用Cloud代理吗?”答案是“视情况而定”。它不需要连接,但它允许更多的安全性,因为您可以限制对Cloud服务器的不必要访问。

Cloud代理不为您的应用程序提供连接-它只提供身份验证。它必须能够通过现有路径进行连接,但随后使用服务帐户的IAM角色来验证连接。这也意味着它不必来自已被白化的网络,因为它是通过不同的方式进行身份验证的。

如果您想使用代理通过私有IP进行连接(而不是默认为public),请使用-ip_address_types=PRIVATE --这将告诉代理连接实例的私有IP。(请注意,如果代理缺少网络路径(例如,不在VPC上),则该代理仍将无法连接。

票数 1
EN

Stack Overflow用户

发布于 2021-08-23 15:34:54

对我来说,问题是在GKE集群中启用Private cluster :(

由于私有GKE集群,它无法访问外部IP地址,因此修复方法是按照https://cloud.google.com/nat/docs/gke-example创建带有云路由器的NAT网关。

提示如果是问题所在,您将无法在登录到容器后从容器中切换到google.com等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55457625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档