我已经在同一项目中创建了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
答案 0 :(得分:1)
要能够连接到Memorystore实例,在创建VPC网络时,您需要选择自动创建子网或分配以下IP范围之一的子集:
- 10.0.0.0/8
- 192.168.0.0/16
问题是分配给尝试连接到Memorystore实例的VM实例的内部IP(172.17.0.7)。创建VPC时,不应将IP范围172.17.0.0/16
的子集分配给自定义子网。如Limited and unsupported networks for Memorystore所示,该范围是为内部组件保留的:
内部具有IP地址的Compute Engine VM实例 范围172.17.0.0/16无法访问Redis的Cloud Memorystore 实例,因为该范围是为内部组件保留的。