我的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).
任何想法如何使其起作用?预先感谢。
答案 0 :(得分:0)
请记住,您可以从相同区域中的 Google Kubernetes Engine集群连接到Redis instance ,并使用与您的实例相同的网络。
使用相同的令牌,您无法在未启用VPC本地/ IP别名的情况下从Google Kubernetes Engine集群连接到Redis instance的云存储库。
我的假设是,您可能将群集放置在其他区域上,未将VPC配置为用于内部连接,也可能位于不同的VPC上。您是否尝试过使用 setup 将Redis连接到GKE实例?
让我发布任何进展情况!