当前位置: 首页 > 知识库问答 >
问题:

使具有私有IP连接的GCP云SQL等同于云SQL代理

阎星华
2023-03-14

GCP建议通过私有IP连接使用云SQL代理https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine#before_you_begin.如果应用程序不想利用云SQL代理,而是选择私有IP连接,则没有建议、文档或流程来确保私有IP连接的安全或建立必要的身份验证。

除了专用 IP 连接之外,应用程序还应执行哪些操作,以使其等效于云 SQL 代理?

共有1个答案

唐利
2023-03-14

云运行本身不支持该解决方案。为此,您必须在容器中自行运行云SQL代理。

我不懂你的语言,但我在围棋中做过测试。这里如何实现这一点

  • 创建无服务器VPC连接器
  • 将无服务器VPC连接器添加到您的Cloud Run服务

现在您可以通过私有IP访问您的数据库,您可以在这里的官方留档中找到

为了在私有模式下强制执行云sql代理,我这样做了

  • 这是我的dockerfile(来自Cloud Run的标准留档,我刚刚定制了最新的行)
# Use the official Golang image to create a build artifact.
# This is based on Debian and sets the GOPATH to /go.
# https://hub.docker.com/_/golang
FROM golang:1.13 as builder

# Create and change to the app directory.
WORKDIR /app

# Retrieve application dependencies using go modules.
# Allows container builds to reuse downloaded dependencies.
COPY go.* ./
RUN go mod download

# Copy local code to the container image.
COPY . ./

# Build the binary.
# -mod=readonly ensures immutable go.mod and go.sum in container builds.
RUN CGO_ENABLED=0 GOOS=linux go build -mod=readonly -v -o server

# Use the official Alpine image for a lean production container.
# https://hub.docker.com/_/alpine
# https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds
#FROM google/cloud-sdk
#
FROM alpine:3
RUN apk add --no-cache ca-certificates
RUN wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O /cloud_sql_proxy && chmod +x /cloud_sql_proxy
# Copy the binary to the production image from the builder stage.
COPY --from=builder /app/server /server
COPY --from=builder /app/start.sh /start.sh
#RUN chmod +x /start.sh

# Run the web service on container startup.
CMD ["/start.sh"]
    < li >如您所见,我下载了云sql代理二进制文件,并调用了< code>start.sh文件。这里的内容
#!/bin/sh

/cloud_sql_proxy -ip_address_types=PRIVATE --dir=/cloudsql -instances=gbl-imt-homerider-basguillaueb:us-central1:vertx=unix:socket &
/bin/sleep 1
/server

在这个文件中,我在后台启动云SQL代理,等待1秒(云SQL初始化时间),然后启动我的Go/server。我在/cloudsql/socket中创建了一个unix套接字。多亏了这一点,您拥有与Cloud Run嵌入式Cloud SQL连接器完全相同的连接类型。

您还可以在tcp模式下启动云sql代理。

注意:GCP 上的云 SQL 代理文档不是最新的。首选 --帮助 有关云 SQL 代理配置中的更多详细信息

 类似资料:
  • 我按照这个示例从Cloud Function连接到Postgres Cloud SQL:https://cloud.google.com/functions/docs/sql. 当我使用公共 IP 创建测试云 SQL 实例并触发云函数时,它会连接到云 SQL 实例并返回一些内容。出于安全原因,我不能将公共 IP 保留为打开状态,因此当我在云 SQL 实例上选择专用 IP 时,我得到: 我无法从文档

  • 我在通过云 SQL 身份验证代理将 GCP 计算引擎虚拟机连接到配置了专用 IP(非公共)的云 SQL 实例时遇到问题。 执行后 我看到以下输出: 我还没有看到上面关于这个主题的任何教程的最后陈述。 我< code>CTRL-C退出上述操作,然后显示: 然后,我运行以下命令以连接到我的云 SQL 实例: 返回: 输入密码后返回: 以下是一些附加信息: 我的虚拟机 (Ubuntu) 与我的云 SQL

  • 但是添加应该在GKE集群中为服务提供一个sidecar,并允许它连接到SQL?

  • 我正在尝试为我的kubernetes项目使用。 我遵循仙丹指南和凤凰指南。在Connect to your Cloud SQL实例中,该指南指出,运行“cloud_sql_proxy-dir=/tmp/cloudsql”和“psql-h/tmp/cloudsql/[CONNECTION-NAME]-u postgres”将打开代理。 所以我尝试用下面的这些命令创建一个新的目录。 然后我尝试连接云s

  • 介绍如何使用云联壹云提供的私有云功能。 云联壹云 提供内置私有云的功能,本章节用于帮助用户快速创建 云联壹云 平台的虚拟机。 概念介绍 区域:区域为物理概念,一般为数据中心的地理区域,一般为城市,如北京等。 云联壹云 私有云只有一个区域,只支持改名。 可用区:可用区是区域下电力和网络相互独立的物理区域,一般为机房名称,例如望京,酒仙桥等。 VPC:专有网络VPC(Virtual Private C

  • 在尝试连接到具有私有IP的Google Cloud平台(从我家庭网络中的机器)中的Postgreql实例时,我一直在苦苦挣扎。 我已经尝试使用https://cloud.google.com/sql/docs/postgres/connect-admin-proxy(代理云sql),但我需要我的实例有一个公共IP,根据我的要求,这是不可能的。此外,我读到我可以使用https://cloud.goo