CoreDNS实战(二)-CoreDNS+ETCD实现DNS服务发现

这篇具有很好参考价值的文章主要介绍了CoreDNS实战(二)-CoreDNS+ETCD实现DNS服务发现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 引言

在前面的文章中讲了如何搭建一个内网的DNS服务,但是这里有个问题,mxsm-register.local表示局域网的注册中心域名,如果需要将每台部署了注册中心的IP地址写到CoreDNS的配置文件中。这样就需要每次都去修改 Corefile 配置文件。那有没有一种方式在服务启动后自动将注册中心所在机器的IP与mxsm-register.local进行绑定,注册中心下线对应的IP也从DNS服务器删除。下面就来讲一下如何利用CoreDNS+etcd来实现这个功能。

2 CoreDNS etcd 插件

CoreDNS 是一个高度灵活插件化的一个组件,其本身提供了很多插件官方的插件,同时也允许开发者进行插件的拓展。要实现上述的功能这里依赖了一个叫做 etcd插件 ,这个插件有如下功能:实现了SkyDNS服务发现,它不适合作为一个通用的DNS区域数据插件。只实现了DNS记录类型的一个子集。

配置语法:

etcd [ZONES...] {
    fallthrough [ZONES...]
    path PATH
    endpoint ENDPOINT...
    credentials USERNAME PASSWORD
    tls CERT KEY CACERT
}
  • fallthrough: 如果区域匹配但没有记录可以生成,将请求传递给下一个插件
  • path: etcd中的路径,默认值/skydns
  • endpoint: etcd endpoint
  • credentials: etcd的用户名和密码
  • tls: CA

3 部署搭建

3.1 环境准备

  • etcd环境搭建(自行去etcd官网查看搭建教程Release v3.5.0 · etcd-io/etcd · GitHub)
  • CoreDNS搭建

这两个是前置条件。

3.2 配置文件

这里使用之前的CoreDNS实战(一)-构建高性能、插件化的DNS服务器-CSDN博客里面的配置进行修改,Corefile 文件:

. {
    forward . 8.8.8.8
}
mxsm.local {
	file mxsm.local { 
        reload 30s 
    }
}
etcd-mxsm.local:53 {
 etcd {
        path /mxsm
        endpoint http://172.22.50.98:2379   --- 这里根据自己的etcd部署进行填写
    }
}

启动CoreDNS进行验证。

3.3 etcd key值说明

etcd插件利用目录结构查询相关条目,已上面的 etcd-mxsm.local 为例,配置的etcd的path为 /mxsm , 上面的条目就是如下:/mxsm/local/etcd-mxsm//mxsm/local/etcd-mxsm/x/mxsm/local/etcd-mxsm/b 等等。这种情况下就是查询 etcd-mxsm.local

3.4 验证

利用 etcdctl 命令put:

$./etcdctl put /mxsm/local/etcd-mxsm/ '{"host":"172.22.50.28","ttl":60}'
$./etcdctl put /mxsm/local/etcd-mxsm/1 '{"host":"172.22.50.128","ttl":60}'
$./etcdctl put /mxsm/local/etcd-mxsm/2 '{"host":"172.22.50.228","ttl":60}'

然后用 dig 进行验证:文章来源地址https://www.toymoban.com/news/detail-756731.html

$ dig @127.0.0.1 a etcd-mxsm.local +short
172.22.50.28
172.22.50.128
172.22.50.228

到了这里,关于CoreDNS实战(二)-CoreDNS+ETCD实现DNS服务发现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务-服务的注册与发现(Consul、zookeeper、etcd、eureka、Nacos)

    一. 对比常用的注册中心 Consul、zookeeper、etcd、eureka、Nacos Feature Consul Zookeeper Etcd Eureka Nacos 服务健康检查  服务状态,内存,硬盘等  (弱)长连接,keepalive  连接心跳  可配支持 传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查 多数据中心  支持  —  

    2023年04月19日
    浏览(40)
  • go-zero微服务实战——etcd服务注册与发现

    浅谈etcd服务注册与发现 etcd官网 etcd中文文档 apt安装etcd,启动命令十分简单 etcd 。 etcd分为v2版本和v3版本,命令有所不一样,使用命令 etcdctl h 查看 如上图所示并没有出现API的版本,此时是使用默认的v2版本,但是v2版本很多命令使用不了,因此切换为v3版本,命令如下: e

    2024年02月12日
    浏览(29)
  • ETCD数据库入门小案例

    etcd一个高可用、强一致性的服务发现存储仓库,它是一个高可用,高度一致的分布式键值存储的 Key/Value 存储系统,内部采用raft协议作为一致性算法。 etcd是一种分布式存储,更强调的是各个节点之间的通信,同步,确保各个节点上数据和事务的一致性,使得服务发现工作更

    2024年02月13日
    浏览(27)
  • etcd底层支持的数据库有哪些

    etcd底层的数据库可以更换。在当前版本的etcd中,它使用的是BoltDB作为默认的后端存储引擎。但是,etcd提供了接口允许您更换数据库后端,以便根据需要选择更合适的存储引擎。 以下是etcd支持的一些后端数据库选项: BoltDB(默认) :BoltDB是一个嵌入式的键值存储数据库,具

    2024年02月15日
    浏览(34)
  • ETCD 未授权访问实战案例

    1、发现 etcd 未授权。 2、尝试在etcd里查询管理员的token,然后使用该token配合kubectl指令接管集群。 最终发现/registry/secrets/kube-system/xx-token-xx 为高权限 token。 3、通常情况下 etcd 所在 ip 即为 6443 管理端口所在 ip,探测后发现 6443 端口开放,接下来可通过 kubectl 操作 k8s。 列出

    2024年01月16日
    浏览(34)
  • k8s外接etcd集群服务异常,使用snapshot恢复etcd集群

    master节点 主机 IP 版本 master01 192.168.66.50 k8s-1.23.17 master02 192.168.66.55 k8s-1.23.17 master03 192.168.66.56 k8s-1.23.17 etcd集群节点 主机 IP 版本 etcd01 192.168.66.58 3.5.6 etcd02 192.168.66.59 3.5.6 etcd03 192.168.66.57 3.5.6 生产环境中我们为了避免出现误操作或者是服务器硬件出见异常导致宕机,我们的虚拟

    2024年01月17日
    浏览(31)
  • 微服务自动化 etcd集群搭建

    它需要开多个虚拟机 那我们就找到你使用的那个虚拟机复制 (强调两个主机都已经安装好了etcd服务并且能够正常运行) 不是复制就可以使用 我们需要把里面的不是vmdk和vmx的文件删了     然后再回到我们的虚拟机,鼠标右键选择打开   然后启动虚拟机它会提示我们是否已

    2024年01月17日
    浏览(33)
  • 【Go语言实战】(22) gin+micro v4+rabbitmq+etcd 重构备忘录

    最近稍微重构了之前写的 micro-todolist 模块 项目地址:https://github.com/CocaineCong/micro-todoList 本次升级将原有的micro v2升级到了micro v4版本,v5 still deving,所以可能不太稳定,所以选择了v4版本。 micro相对于grpc,区别就是 grpc比较原始 ,什么都要自己封装,比如 服务的注册与发现

    2024年02月07日
    浏览(26)
  • Zookeeper 和 ETCD在分布式协调服务的使用

    在云原生环境中,etcd和ZooKeeper都是常见的分布式协调服务,具有各自的优点和缺点。以下是它们在云原生环境中的比较: etcd的优点: 性能:etcd采用Raft一致性算法,具有较高的性能和吞吐量。 简单的API:etcd的API设计简洁易用,支持多种编程语言的客户端库。 可观察性:

    2024年02月16日
    浏览(35)
  • K8s服务发现组件之CoreDNS/NodeLocalDNS /kubeDNS

    1.1.1 什么是CoreDNS CoreDNS 是一个灵活可扩展的 DNS 服务器 ,可以作为 Kubernetes 集群 DNS,在Kubernetes1.12版本之后成为了默认的DNS服务。 与 Kubernetes 一样,CoreDNS 项目由 CNCF 托管。 coredns在K8S中的用途,主要是用作服务发现,也就是服务(应用)之间相互定位的过程。 在k8s中,用serv

    2024年02月19日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包