1

我在同一个项目中创建了一个 VM 实例和 MemoryStore 实例,但无法从 VM 连接。

# telnet 192.168.1.4 6379
Trying 192.168.1.4...
telnet: connect to address 192.168.1.4: Connection timed out

VM所属的VPC被指定为Redis的认可网络,Redis的IP不重复,VPC对等也自动创建。我还需要设置防火墙规则等吗?

VM 和 Redis 在同一个区域。

$ gcloud compute instances list --filter=name='staging-gateway'
NAME             ZONE          MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
staging-gateway  asia-east1-a  f1-micro                   172.17.0.7   *.*.*.*  RUNNING

$ gcloud redis instances list --region asia-east1
INSTANCE_NAME             REGION      TIER         SIZE_GB  HOST         PORT  NETWORK             RESERVED_IP     STATUS  CREATE_TIME
staging-whiteboard-redis  asia-east1  STANDARD_HA  1        192.168.1.4  6379  staging-*-vpc  192.168.1.0/29  READY   2019-02-05T03:03:08
4

1 回答 1

1

为了能够连接到您的 Memorystore 实例,当您创建 VPC 网络时,您需要选择自动创建子网或分配以下 IP 范围之一的子集:

- 10.0.0.0/8
- 192.168.0.0/16

问题是分配给尝试连接到 Memorystore 实例的 VM 实例 (172.17.0.7) 的内部 IP。创建 VPC 时,不应将 IP 范围的子集分配给172.17.0.0/16自定义子网。该范围保留给内部组件,如Memorystore 的 Limited and unsupported networks 中所示

内部 IP 地址在 172.17.0.0/16 范围内的 Compute Engine 虚拟机实例无法访问 Cloud Memorystore for Redis 实例,因为该范围是为内部组件保留的。

于 2019-02-06T16:11:05.860 回答