CoreDNS

CoreDNS #

CoreDNS: DNS和服务发现

CoreDNS是一款DNS服务器,用Go语言编写。

CoreDNS与其他DNS服务器(例如BIND、Knot、PowerDNS和Unbound(严格来说是一个解析器,但仍值得一提))不同,因为它非常灵活,几乎所有功能都由插件实现。

插件可以是独立运行的,也可以协同工作来执行“DNS 功能”。

那么什么是“DNS 功能”?对于CoreDNS而言,我们将其定义为实现CoreDNS插件API的一段软件代码。实现的功能可能差异巨大。有些插件本身并不生成响应,例如metrics(指标)或 cache(缓存),它们只是增加了一些功能。而另一些插件则会生成响应。这类插件的功能可以多种多样:例如,有些插件与Kubernetes通信以提供服务发现功能,有些插件从文件或数据库中读取数据。

默认安装的CoreDNS包含约 30 个插件,但也有大量外部插件可以编译进CoreDNS以扩展其功能。

CoreDNS的核心是插件。

编写新插件应该相对容易,但需要熟悉Go语言并对DNS的工作原理有所了解。CoreDNS对许多DNS的细节进行了抽象,因此开发者只需专注于实现所需的插件功能即可。

© 2025 青蛙小白 | 总访问量 | 总访客数