从 Cloud Build 到 GCP 中的 Cloud Memorystore

从 Cloud Build 到 GCP 中的 Cloud Memorystore

我在 Google Cloud Memorystore 中有一个实例。我想从我在 Google Cloud Build 中运行的构建连接到它。

我为 Cloud Build 创建了以下配置文件:

steps:
  - name: 'gcr.io/cloud-builders/docker'
    args:
      - run
      - redis
      - redis-cli
      - -h
      - 10.1.2.3
      - PUBLISH
      - cloud-build-1
      - msg1

(我已经更改了 IP 地址,但这是一个不重要的细节。)

我使用以下命令运行该配置文件:

gcloud builds submit --no-source --config cloudbuild.yaml

构建失败。该命令的输出包括:

Could not connect to Redis at 10.1.2.3:6379: Connection timed out

(再次,我已更改 IP 地址。)

我怎样才能使这个redis-cli命令起作用?

答案1

您尝试执行的操作目前无法执行。您会看到,为了连接到 Memorystore 实例,虚拟机或 Kubernetes 集群必须位于同一个 GCP 项目、区域和 VPC 网络中。当您使用 Cloud Build 时,您使用的虚拟机无法选择区域和网络。

对此进行一些研究后,我发现 Google 工程团队一直在研究目前所谓的 Worker 池。该产品 [1] 目前处于 alfa 状态,不建议在生产环境中实施,因为它可能会在未经通知的情况下发生变化。

使用云 shell,您可以在特定网络上创建一台机器来访问您的资源(例如 memorystore)。您还可以指定云构建工作器的区域、磁盘大小或机器类型。

[1]https://cloud.google.com/sdk/gcloud/reference/alpha/builds/worker-pools/create

相关内容