首页 > 数据库 >【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server

【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis server

时间:2024-03-13 20:33:38浏览次数:24  
标签:cn AKS xxx Redis server Azure 连接

问题描述

在AKS Pod中连接 Azure Redis服务,大概率出现连接不上的问题。大多数的错误为 RedisConnectionException: Unable to connect to Redis server: xxxxxxxxx.redis.cache.chinacloudapi.cn/52.xxx.xxx.xxx:6380

, 但是有时候的错误信息为: RedisConnectionException: Unable to init enough connections amount! only 6 of 24 were initialized. Redis server: xxxxxxxxx.redis.cache.chinacloudapi.cn/52.xxx.xxx.xxx:6380 。

所以,根据后面的信息判断,Pod并不是完全不能连接Reids服务器,而是只能成功建立部分连接,这是什么问题呢?

 

问题解答

当出现连接Redis服务器Timeout时,第一反应就是要查看客户端和服务端的网络是否连通,是否稳定。

所以进入到Pod所在的节点中,执行 paping 测试,验证了问题在于 连接Redis服务器6380的端口不稳定,经常出现Timeout。

paping -p 6380 xxxxxxxx.redis.cache.chinacloudapi.cn -c 10

结果如下:

证明了是因为AKS所在的网络与Azure Redis之间,存在连通性稳定问题。

 

进一步调查AKS的网络配置,使用的是默认标准版本的Azure Load Balancer。因为Load Balancer存在出口IP端口限制,默认一个节点的出口端口为1024个,如果节点中所建立的连接过多,占用完SNAT端口数,就会导致新的连接连接不成功 Connection timed out. 

(Source: https://docs.azure.cn/zh-cn/aks/load-balancer-standard#configure-the-allocated-outbound-ports

 

通过调大默认的SNAT端口限制数后 (1024 ---> 8192), 连接Redis的问题得到解决。

 

## 长Ping结果也变得稳定。

 

参考资料

在 Azure Kubernetes 服务 (AKS) 中使用公共负载均衡器  : https://docs.azure.cn/zh-cn/aks/load-balancer-standard#configure-the-allocated-outbound-ports

使用 PSPING 测试连接 : https://docs.azure.cn/zh-cn/azure-cache-for-redis/cache-troubleshoot-connectivity#test-connectivity-using-psping

 

标签:cn,AKS,xxx,Redis,server,Azure,连接
From: https://www.cnblogs.com/lulight/p/18071464

相关文章

  • docker部署redis
    1拉取最新redis镜像dockerpullredis2创建文件夹,配置redis文件mkdir/root/datavim/root/redis.conf#配置以下内容密码设定为123456bind0.0.0.0daemonizeNOprotected-modeyesrequirepass1234563映射并运行容器dockerrun-id-p6379:6379--namered......
  • docker 制作与使用 arcgisserver 镜像
    PS:有状态服务本身不适合部署到容器中,数据恢复比较困难,生产环境请直接安装到Linux服务器中1.准备内容在同级目录下,准备以下内容空的dockerfile文件:arcgisserver.dockerfilelinux版的ArcGISServer安装包:ArcGIS_Server_Linux_xxxxxx.tar.gzArcGISServer的许可文件:ArcGI......
  • 关于Sql server数据类型HierarchyID 数据类型用法和递归显示完整路径
    SQLServer2008版本之后的新类型HierarchyID不知道大家有没有了解,该类型作为取代id,parentid的一种解决方案,让人非常惊喜。官方给的案例浅显易懂,但是没有实现我想要的基本功能,树形结构中完整名称路径的展示。本文末尾是一个完整路径的样例,需要更多基本操作可以参考文末微软链......
  • SQL Server 因设置最大内存过小导致无法启动
    首先是    在服务器上发现SQLServer占用内存过大,128G服务器内存它占用高达100多G。于是就去找解决方案,找了几篇文章发现都是通过修改SQLServer服务器最大内存让其释放占用内存,如图所示,我把最大内存修改为128MB发现问题    然后我就发现我的SQLServer服务无......
  • redis自学(17)poll
    PollPoll模式对select模式做了简单改进,但性能提升不明显,部分关键代码如下:  如果设置超时时间,当超时时间过了,pollfd的fd没有就绪,revents就会赋值为0IO流程:①创建pollfd数组,向其中添加关注的fd信息,数组大小自定义②调用poll函数,将pollfd数组拷贝到内核空间,转链表存储,......
  • 爆款游戏如何借助 RocketMQ Serverless,打造流畅体验并节省 98% 成本?
    作者:鼎岳、稚柳、勇猛、家泽一款游戏作品之所以能在市场上引爆热潮,铸就爆款传奇,除了独树一帜的创新设计理念、引人入胜的故事情节和丰富多样的玩法机制之外,最核心的要素就是为玩家提供极致流畅且无与伦比的游戏体验。这种体验涵盖了从游戏载入速度、画面帧率稳定性、操作响应灵敏......
  • redis 延迟队列
    参考:https://blog.csdn.net/weixin_42128977/article/details/126152834https://cloud.tencent.com/developer/article/2310463?areaId=106001场景定时任务,比如任务A和任务B是同条流水线上的,当任务A完成了,一个小时后执行任务B我们打车,在规定时间内,没有车主接单,那么平台就......
  • redis集群原理
    Redis集群是Redis数据库的分布式解决方案,用于提高性能、扩展性和容错能力。以下是Redis集群的一些核心原理:数据分片(Sharding):Redis集群通过将数据分片存储在多个节点上来实现水平扩展。每个节点只负责部分数据的存储和处理,从而分担整个系统的负载。主从复制(Master-Slave......
  • Windows Server 各版本搭建终端服务器实现远程访问(03~19)
    一、WindowsServer2003左下角开始➡管理工具➡管理您的服务器,点击添加或删除角色点击下一步 勾选自定义,点击下一步蒂埃涅吉终端服务器,点击下一步 点击确定重新登录后点击确定点击开始➡管理工具➡计算机管理,展开本地用户和组,点击组可以发现有个组关门用来远程......
  • CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis
    前言:前几天,点开自己的博客,看了一下CYQ.DataV5系列 都有哪些文章,发现了一篇2019年写的:CYQ.Data对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。感觉文章中有些表述存有问题,不过不是重点。重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的......