Kubernetes DNS Service技术研究

原创 2017年01月10日 19:46:56

本文主要是对kubernetes 1.2和1.3的DNS Service的内部实现分别进行研究,得出其内部实现框架和交互逻辑,并对它们的实现进行了比较。

Kubernetes 1.2 DNS Service

部署

kubernetes 1.2中DNS Server的部署请参考:https://xuxinkun.github.io/2016/07/22/kubernetes-dns/

内部架构及技术细节

画图画的好累,不想写太多字了,其实想说的都在图里。

这里写图片描述
说明:

  • 线路1:kubernetes cluster中的DNS请求被SkyDNS接受,SkyDNS配置了Backend为etcd/cluster,从etcd/cluster中读取数据,然后封装数据返回完成DNS query请求。
  • Kube2Sky通过watch kube-api-server对service & endpoint的数据来进行更新etcd中/v2/key/skydns/…中的数据。

Kubernetes 1.3 DNS Service

部署

kubernetes 1.3中DNS Server的部署请参考:http://tonybai.com/2016/10/23/install-dns-addon-for-k8s/

内部架构及技术细节

这里写图片描述

在kubernetes 1.3中,KubeDNS容器把在1.2中分开部署的SkyDNS和Kube2Sky整合在程序kube-dns中,在容器KubeDNS中部署,其启动流程如下:

  1. Starting SkyDNS server. Listening on port:10053.
  2. skydns: metrics enabled on :/metrics.
  3. Setting up Healthz Handler(/readiness, /cache) on port :8081.
  4. watch kuber-api-server for service & endpoint & pod.
  5. initialize in-memory lookup structures to service DNS requests.

说明:

  • 线路1:kubernetes cluster中的DNS请求被dnsmasq接受,dnsmasq默认配置了一个1G大小的cache,以提高性能。如果dnsmasq cache中有记录命中,则直接有dnsmasq返回。
  • 线路2:若dnsmasq cache中无记录命中,则forward请求到KubeDNS容器中的SkyDNS Server处理,SkyDNS从KubeDNS维护的一块内存(cache)中查找数据并进行响应。这个cache是由类似1.2中的Kube2Sky中的模块通过watch kube-api-server对service & endpoint的数据来进行更新维护。

总结

对比1.2和1.3中的实现,主要区别在:

  • 1.2中SkyDNS和Kube2Sky分别部署在两个不同的容器中,直接由SkyDNS接受kubernetes cluster中的DNS请求;
  • 1.3中将SkyDNS和Kube2Sky整合到了一个程序中KubeDNS;
  • 1.3中引入了dnsmasq容器,由它接受kubernetes cluster中的DNS请求,目的就是利用dnsmasq的cache模块,提高性能;
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Kubernetes DNS服务的安装与配置

架构Kubernetes的DNS服务是基于SkyDNS实现的,同时又需要和API Server紧密沟通,它的基本工作方式是通过API Server监视服务创建,一旦有新的服务创建就通知SkyDNS创建...

为Kubernetes集群里的容器提供DNS服务,用于解析service名称

部署DNS服务 下载镜像到本地仓库 部署服务 让kubelet修改每个pod的默认DNS 修改kubelet参数 重启node 测试部署DNS服务kubedns负责从KUBERNETES_SERVIC...
  • wzp1986
  • wzp1986
  • 2017年05月13日 18:15
  • 531

iMessage推广(群发)技术研究

iMessage介绍 iMessage是苹果设备(iPad、iPhone、iPod touch)自带的免费信息发送应用。它的信息通过网络发送,不同于运营商短信。目前iMessage日活跃用户1.9亿...

视频内容加密封装技术研究

视频内容加密封装技术研究 郭晓霞  王 磊  沈 阳 (国家新闻出版广电总局广播科学研究院)   【摘要】基于http的动态自适应流媒体技术面向多种智能终端提供视频服务是目...

探究论文检测系统抄袭的算法原理等技术研究

以下转自:http://www.zaojiance.com/news/news-detail-2014-04-23-16-22-05.html 摘 要:论文抄袭的检测是知识产权保护中...

JAVA刷网站流量的技术研究总结

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://soarwell.blog.51cto.com/689880/1318324 ...
  • czh500
  • czh500
  • 2016年10月29日 04:59
  • 533

面向数据集成的ETL技术研究

转载 : http://blog.chinabyte.com/a/445097.html 数据集成是把不同来源、格式和特点的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享,是企业商...

CDN 技术研究——总概篇

什么是 CDN。CDN 的功能视图,部署视图和业务视图简述

安卓 dex 通用脱壳技术研究(一)

http://my.oschina.net/cve2015/blog/508604 摘要 本文剖析安卓 Dalvik 解释器 Portable 的原理与实现,并通过修改 Dalv...
  • problc
  • problc
  • 2015年09月26日 22:48
  • 13316

VR技术研究—9轴融合算法—磁力计校准(二)

VR技术研究—9轴融合算法—磁力计校准(二) 上一篇发现,在绘制磁力计后发现磁力计的圆心出现了明显的偏移,各轴的长度也不一样,如果不校准,融合的效果显然不够好。 一、 算法设计    为了解决这个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Kubernetes DNS Service技术研究
举报原因:
原因补充:

(最多只允许输入30个字)