前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让DNS运行在容器中

让DNS运行在容器中

作者头像
SRE运维实践
发布2019-07-08 13:10:07
7520
发布2019-07-08 13:10:07
举报
文章被收录于专栏:SRE运维实践

序言

秋天这么快就来了,感冒如风。

最后一公里,只是一种寻找路径的方式,DNS就是一种寻路。。

在容器中运行DNS

在这里主要使用的容器的镜像是基于bind的,在其中封装了图形界面,从而可以在界面上直接进行配置相关的参数。

1、 使用Dokcerfile来编译自己的镜像

2、 Dockerfile内容

3、 区域数据文件,主要用来解析域kel.com

4、 named的全局配置文件,主要是来配置acl权限

5、 测试运行

在容器中进行测试修改:

可能出现的报错:(主要是查看日志,rndc是远程管理工具,用来进行加载,生成缓存文件,)

在使用rndc的时候,如果出现无法连接,可能的原因是rndc未进行配置,也可能是设置了端口的限制;在使用文件的时候,注意named的进程属主是named,从而要选择合适的目录来存放文件,否则权限不够;当显示无递归,查询权限时,注意查看acl规则。

漫谈DNS

为什么要玩玩DNS呢?

DNS作为最基础的服务存在于系统之中,而再看DNS的发展历史,从一个小小的hosts文件,再到一个集中式下载的hosts文件,再到一个分布式存储,也可以看出来是在慢慢的发展,追求高可用,追求高性能。

DNS最主要的作用就是将IP地址和域名进行解耦,也就是你只需要使用域名即可,无须关注ip地址,我后端换了ip地址,对于客户端来说,是无感知的。

对于客户端来说,一般的配置文件就是在/etc/resolve.conf中,你可能是自己手动配置的,也可能是DHCP获取到的,也就是一个nameserver了,在这里就可以进行域名的解析,无论是递归的方式还是迭代的方式,而对于一个高可用的NS来说,一般都是配置两个,而这两个并不是主从的关系,或许两个都是主,都是可用的解析的NS。

DNS最终会发展到什么样的形态,其实也就是提供一个api接口,从而可以添加删除修改域,添加删除修改各种A记录等,能够动态的刷新即可了。

DNS主从,采用AXFR/IXFR进行增量或者全量的数据区域文件传输。

DNS可以做简单的负载均衡,主要是为了提供后端的服务,不过权威服务器不能清除客户端的缓存值,那么是否可以认为,这段时间内必然是业务有损的?

DNS---httpdns---CDN,基本上这种发展路线了。

其目的主要是为了解决用户访问的最后一公里问题,也就是所有的资源都离用户最近的地方,而对于目前所在的形势来说,这种还是比较困难的。

每个运营商,每个数据中心,所创建的DNS服务器都有自己的缓存,而每次请求了权威服务器之后,都会将结果进行缓存,而请求的时候,每次出去的ip都是NS的ip,从而并不是用户的真正的ip,从而,如何精确的定位用户所在的位置,也是一个非常大的问题。

对于DNS来说,不知道用户在哪里,因为你的NS地址是自己写的,而对于httpdns来说,就必须要使用dns的客户端了,然后发送一个http请求过去,而对于http请求,则有用户具体的ip地址,从而可以大致判断用户所在的位置,从而选择一个就近的ip地址返回给用户。

而对于CDN来说就更加厉害了,将所有请求的资源放在用户身边,也就是一些静态资源,视频等内容,直接放在缓存里,当用户请求的时候,会直接进行GSLB的调度,返回用户请求的资源,从而提高更快的响应速度。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SRE运维实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档