我在 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