gke-redis-连接超时

时间:2019-09-03 16:43:26

标签: node.js redis google-kubernetes-engine google-cloud-memorystore

我的node js应用程序抛出连接超时以便与Redis实例连接。我试图将Redis实例作为单独的部署以及内存存储Redis实例启动。作为Pod中的部署,我使用普通的nodeport并尝试使用集群ip访问此实例。 ip在配置映射中。

我尝试从node js应用程序的pod ping通gke上的内存存储的IP地址以及redis部署的群集IP,但是没有连接。

随着redis实例的部署也获得了内部ip:10.0.231.4

什么都没做

内存存储:

gcloud redis instances describe my-redis --region=us-central1

Response:
authorizedNetwork: projects/xxxxx/global/networks/xxxxx
createTime: '2019-09-03T13:39:36.050896298Z'
currentLocationId: us-central1-a
host: 10.0.48.3
locationId: us-central1-a
memorySizeGb: 2
name: projects/xxxxx/locations/us-central1/instances/transact-redis
persistenceIamIdentity: serviceAccount:xxxxxxxxxxx-compute@developer.gserviceaccount.com
port: 6379
redisVersion: REDIS_4_0
reservedIpRange: 10.0.48.0/29
state: READY
tier: BASIC

我也尝试从Cloud Shell telnet到6379端口上的10.0.48.3。它也失败了。

这是日志:

2019-09-04 17:20:01.164 CEST at Socket.emit (events.js:209:13)
2019-09-04 17:20:01.164 CEST at emitErrorNT (internal/streams/destroy.js:91:8)
2019-09-04 17:20:01.164 CEST at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
2019-09-04 17:20:01.164 CEST at processTicksAndRejections (internal/process/task_queues.js:77:11) {
2019-09-04 17:20:01.164 CEST errno: 'ETIMEDOUT',
2019-09-04 17:20:01.164 CEST code: 'ETIMEDOUT',
2019-09-04 17:20:01.164 CEST syscall: 'connect',
2019-09-04 17:20:01.164 CEST address: '10.0.48.3',
2019-09-04 17:20:01.164 CEST port: 6379
2019-09-04 17:20:01.164 CEST}
2019-09-04 17:20:06.565 CESTContainer called exit(1).

任何想法如何使其起作用?预先感谢。

1 个答案:

答案 0 :(得分:0)

  

请记住,您可以从相同区域中的 Google Kubernetes Engine集群连接到Redis instance ,并使用与您的实例相同的网络

     
    

使用相同的令牌,您无法在未启用VPC本地/ IP别名的情况下从Google Kubernetes Engine集群连接到Redis instance的云存储库

  

我的假设是,您可能将群集放置在其他区域上,未将VPC配置为用于内部连接,也可能位于不同的VPC上。您是否尝试过使用 setup 将Redis连接到GKE实例?

让我发布任何进展情况!