Consul与CoreDNS的对比

最近在做服务注册与发现方案的选择,由于是在K8S上解决服务发现与注册,所以第一想到的就是K8S的CoreDNS,然后再想到的就是SpringCloud那一套中的Consul。

下面是我对这两者的思考与选择,欢迎大家一起讨论或者大佬给出意见。

一、CoreDNS简介

CoreDNS官网:https://coredns.io/

CoreDNS是一个DNS(域名解析)服务器,以插件的形式被提供。

可以处理服务发现。

在K8S中安装了CoreDNS后,每个服务就可以使用域名的方式调用其他服务。

感觉CoreDNS的优点就是专一、简单,适合规模比较小的微服务集群。

CoreDNS是使用Go语言开发的。

二、Consul简介

Consul官网:https://www.consul.io/

Consul是一个服务网络解决方案,主要解决的问题是知道服务在哪儿运行、如何守护服务间交流的安全、如何自动化网络任务的路由、如何控制对于环境的访问。

Consul作为SpringCloud中服务发现解决方案,它对于服务发现是一个完整的解决方案,而且它提供了心跳检测等能力,还有UI界面方便使用。

Consul是使用Go语言开发的。

三、总结与选择

下面是对于两者的优劣势总结。

方案优点缺点
CoreDNS1、直接使用域名解析做服务发现,通过服务名就可以调用到服务,简单易用
2、直接使用K8S的插件安装CoreDNS,容易安装
1、没有服务管理功能。
2、也没有相应的UI页面。
Consul1、完整的服务注册与发现方案。
2、具有UI界面,可以管理微服务。
1、Consul是一个服务网络解决方案,只是用到了其中的一部分功能,相对CoreDNS来说有点复杂和臃肿。

我想找的是一个完整的服务发现解决方案,而且需要可视化的界面方便管理微服务,因此选择Consul是比较正确的选择。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐