k8s域名解析超时问题记录(转)
前言 近期线上 k8s 时不时就会出现一些内部服务间的调用超时问题,通过日志可以得知超时的原因都是出现在域名解析上, 并且都是 k8s 内部的域名解析超时,于是直接先将内部域名替换成 k8s service 的 IP,观察一段时间发现没有超时 的情况发生了,但是由于使用 service IP 不是长久之计,所以还要去找解决办法。 复现 一开始运维同事在调用方 pod 中使用ab工具对目标服务进行了多次压测,并没有发现有超时的请求,我介入之后分析 ab这类http 压测工具应该都会有dns 缓存,而我们主要是要测试 dns 服务的性能,于是直接动手撸了一个压测工具 只做域名解析,代码如下: package main import ( "context" "flag" "fmt" "net" "sync/atomic" "time" ) var host string var connections int var duration int64 var limit int64 var timeoutCount int64 func main() { // os.Args = append(os.Args, "-host", "www.baidu.com", "-c", "200", "-d", "30", "-l", "5000") flag.