
Prometheus监控神器-服务发现篇(二)
基于DNS的发现
对于一些环境,可能基于文件与consul服务发现已经无法满足的时候,我们可能就需要DNS来做服务发现了。在互联网架构中,我们使用主机节点或者Kubernetes集群通常是不对外暴露IP的,这就要求我们在一个内部局域网或者专用的网络中部署DNS服务器,使用DNS服务来完成内部网络中的域名解析工作。这个时候我们就可以使用Prometheus的DNS服务发现,Prometheus的DNS服务发现有俩种方法,第一种是使用DNA A记录来做自动发现,第二种方法是DNS SRV,第一种显然没有没有SRV资源记录更为便捷,在这里就把俩种配置全部做一遍,对于取决用什么,根据你自己的环境来抉择。
DNA A记录发现配置,首先你内网需要有一个DNS服务器,或者直接自行配置解析记录即可,我这里使用的dnsmasq服务在内网测试
Prometheus配置
重启Prometheus 在targets中可以看到dns-a记录
dns-a
DNS SRV是DNS资源记录中的一种记录类型,用来指定服务器地址与端口,并且可以设置每个服务器的优先级和权重。访问到服务的时候,本地的DNS resolver 从DNS服务器获取一个地址列表,然后根据优先级和权重来选择一个地址作为本次请求的目标地址。
SRV的记录格式:
_service._proto.name. TTL class SRV priority weight port target
这里没有使用named,而是使用的dnsmasq来做的测试,添加SRV记录完成后,需要重启dnsmasq服务使其生效。
Prometheus配置完成以后,重载Prometheus服务。
这个时候在targets中可以看到DNS自动发现的记录了。
DNS-SRV
这个时候,我们在新加一个记录,用来做自动发现。
这个时候在去观察targets就发现已经可以自动发现test0了。
DNS-SRV-1
欢迎大家关注我的公众号ID:k8stech
文章转自公众号:Kubernetes技术栈
