kubernetes kube-dns service 介绍
kube-dns 是 kubernetes 基于 DNS 的服务发现模块,主要由三个容器组成,分别是 dnsmasq, kube-dns, sidecar,整体的结构如图。
sidecar
sidecar 是一个监控健康模块,同时向外暴露metrics 记录,但是为啥叫三蹦子不知道。
接受的探测参数是
--probe=<label>,<server>,<dnsname>[,<interval_seconds>][,<type>]
例子如下
--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.cluster.local,5,A
等于是每隔 5s 向127.0.0.1:53 进行 DNS 查询 kubernetes.default.svc.cluster.local 的 A 记录
对应的结构体是
dnsmasq
dnsmasq-nanny 是 dnsmasq 的保姆进程,dnsmasq 是一个简易的 DNS server。
dnsmasq-nanny “–” 后面是 dnsmasq 的参数,比如下面这个参数表示的是把 server=/cluster.local/127.0.0.1#10053
当作 dnsmasq 的配置,10053 是 kube-dns 的地址,也就是把 cluster.local 的域名拦截转到 kube-dns 进行解析,剩下的通过正常的域名解析流程。
--server=/cluster.local/127.0.0.1#10053
dnsmasq 简单来说扮演的是集群当中的一个传统 dns server 并且把集群内部的 dns 查询拦截到 kube-dns 当中通过中心化的方法进行 dns 查询,集群的 dns 查询主要依靠 kube-dns。
kube-dns
kube-dns 主要基于 skydns 来实现。
在 k8s.io/dns/pkg/dns/dns.go
的 KubeDNS.Start
下面有 endpoints 和 services 的 controllers,会把 service 注册到 kube-dns 的 cache 当中 (k8s.io/dns/pkg/dns/treecache),这里有 k8s 域名命名规范
主要的实现方式是 skydns 接受一个后端实现。
KubeDNS.Records
KubeDNS.ReverseRecord
基于 TreeCache 实现 DNS 记录存储的后端,从而使得 skydns 提供 DNS 服务。
总结
整体来说 kube-dns 还是一个比较简单的模块,基于 kube-apiserver 的一个控制器,提供中心化的 DNS 查询。
本文转自kubernetes中文社区-kubernetes kube-dns service 介绍
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用 kubeadm 创建 kubernetes 1.9 集群
简介 kubeadm是一个kubernetes官方提供的快速安装和初始化拥有最佳实践(best practice)的kubernetes集群的工具,虽然目前还处于 beta 和 alpha 状态,还不能用在生产环境,但是我们可以通过学习这种部署方法来体会一些官方推荐的kubernetes最佳实践的设计和思想。 kubeadm的目标是提供一个最小可用的可以通过Kubernetes一致性测试的集群,所以并不会安装任何除此之外的非必须的addon。 kubeadm默认情况下并不会安装一个网络解决方案,所以用kubeadm安装完之后 需要自己来安装一个网络的插件。 使用 系统环境 kubeadm支持多种系统,这里简单介绍一下需要的系统要求: Ubuntu16.04+ / Debian 9 / CentOS 7 / RHEL 7 / Fedora 25/26(best-effort) / HypriotOS v1.0.1+ / Other 2GB或者以上的RAM(否则将没有足够空间留给app) 2核以上CPU 集群的机器之间必须能通过网络互相通信 SWAP必须被关闭,否则kubelet会出错! ...
- 下一篇
Kubernetes1.9 二进制版集群+ipvs+coredns
节点构造如下 : 节点ip 节点角色 hostname 192.168.0.57 node bigdata3 192.168.0.56 node bigdata4 192.168.0.58 node bigdata5 192.168.0.48 master01 ingest01 192.168.0.49 master02 ingest02 192.168.0.50 master03 ingest03 192.168.0.38 etcd01 etcd01 192.168.0.39 etcd02 etcd02 192.168.0.40 etcd03 etcd03 集群网络结构: 网络名称 网络范围 集群网络 172.20.0.0/16 svc网络 172.21.0.0/16 物理网络 192.168.0.0/24 组件配置: 系统 参数 系统 centos7 内核版本 4.4 docker-data数据盘 ext4 docker 1.126 Storage Driver: overlay2 Backing Filesystem: extfs Logging Driver: journald...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池