无法从 VM 连接 MemoryStore

Can not connect MemoryStore from the VM

我在同一项目中创建了 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 peering也自动创建。 是否需要另外设置防火墙规则等?

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

为了能够连接到您的 Memorystore 实例,当您创建 VPC 网络时,您需要 select 自动创建子网 或分配以下之一的子网以下 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 的子集分配给自定义子网。该范围保留给内部组件,如 Limited and unsupported networks for Memorystore:

所示

Compute Engine VM instances that have an internal IP address within the range 172.17.0.0/16 cannot access Cloud Memorystore for Redis instances, because that range is reserved for an internal component.