我正在 GKE(谷歌库伯内特斯引擎)上构建一个应用程序,以及一个使用 GCE Redis 实例的系统。当我尝试从 GKE 上的应用程序容器连接到 GCE 上的 Redis 时,连接被拒绝了。() 应用程序是用 Go 编写的,而重用库是 go-redis(v8)。为什么我无法连接?dial tcp <REMOTE-IP>:6379: connect: connection refused
连接部分和发生错误的部分的源代码如下所示。
redisServerName = os.Getenv("REDIS_SERVER") // "sample.com:6379"
redisClient = redis.NewClient(&redis.Options{
Addr: redisServerName,
Password: "",
DB: 0,
})
p, err := redisClient.Ping(ctx).Result()
log.Println(p, err)
主机名已解析,因此它不是 DNS 问题,并且 redis-cli 命令是可执行的,因此它似乎不是防火墙问题。
# redis-cli -h <REMOTE_IP> ping
PONG
附言
下面是在 Go 应用程序运行的情况下从 Pod 运行命令的结果
/# redis-cli -h redis.sample.com
redis.sample.com:6379> // can connect
/# nc redis.sample.com 6379
// There is NO response.
大话西游666
肥皂起泡泡
随时随地看视频慕课网APP
相关分类