姜堰哪里有网站建设的,wordpress 网店模板,北京专业网站制作,网站动态效果用什么软件做的故障发生背景#xff1a; 租户反馈生产业务服务连接到中间件的时候#xff0c;偶尔会有连接失败的情况#xff0c;然后我们查看对应组件服务正常#xff0c;手动请求组件服务也显示正常#xff0c;让租户查看业务服务日志发现报错无法解析对应的域名#xff0c;我们手动是…故障发生背景 租户反馈生产业务服务连接到中间件的时候偶尔会有连接失败的情况然后我们查看对应组件服务正常手动请求组件服务也显示正常让租户查看业务服务日志发现报错无法解析对应的域名我们手动是可以解析的报错如下 2023-06-01 17:21:32,653 [573462087] [lettuce-epollEventLoop-6-2] WARN io.lettuce.core.RedisClient[605] - Cannot connect Redis Sentinel at redis://zzpod6clusterprod-redis-tydb-1-sentinel.paas-middleware:26379: java.util.concurrent.CompletionException: io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostException: Failed to resolve ‘zzpod6clusterprod-redis-tydb-1-sentinel.paas-middleware’ and search domain query for configured domains failed as well: [tydb.svc.cluster.local, svc.cluster.local, cluster.local] 故障处理过程
根据业务日志反馈的报错我们在手动验证集群coredns解析没问题的同时查看了下coredns的日志发现日志中确实解析成功的也有解析失败的如下 按理说手动测试解析一直没有问题而且不是所有服务都是这种情况查看了下租户解析有问题的服务发现租户解析有问题服务中都配置了外部dns server,如下 这个外部dns服务器之前租户是有这个需求的想着k8s集群内的服务能请求到特定的域名后面我把这个外部dns服务地址给他配置到k8s集群的cordens配置里实现访问特定域名地址可以通过coredns转给外部dns服务器进行解析。coredns配置外部dns服务如下 从如上分析来看既然在coredns中已经配置了外部转发dns服务租户如果继续在服务中还配置外部dns服务地址就会导致应用服务会有两个dns nameserver,首先会访问集群内部域名地址会解析到pod中配置的那个外部dns服务中会出现解析不了的情况就反馈失败然后轮到集群内部定义的dns服务就会正常解析成功。
故障处理结果
把在服务中配置dnscongfig相关参数去掉让服务统一走集群内的coredns进行转发处理即可。