首页 > 其他分享 >COREDNS小记

COREDNS小记

时间:2023-02-05 22:00:12浏览次数:35  
标签:kubernetes arpa 域名 DNS coredns COREDNS 解析 小记

一、coredns的域名解析流程

CoreDNS 是一个 Go 语言编写的灵活可扩展的 DNS 服务器,在 Kubernetes 中,作为一个服务发现的配置中心,在 Kubernetes 中创建的 Service 和 Pod 都会在其中自动生成相应的 DNS 记录。

Kubernetes 服务发现的特性,使 CoreDNS 很适合作为企业云原生环境的 DNS 服务器,保障企业容器化和非容器化业务服务的稳定运行。

COREDNS小记_k8s


解析流程:

  1. pod1访问网站或者其他服务;
  2. pod1根据 resolv.conf 向 kube-dns service 发起 dns 解析请求;
  3. kube-dns 将请求转发给 coredns 集群中的任意一个节点;
  4. coredns 向 k8s 发起调用 etcd 内的记录资源请求;
  5. k8s 从etcd 集群中调出相关解析记录,并回传给 coredns;
  6. coredns 将解析结果通过 kube-dns 回传给 pod1;
  7. pod1 根据解析结果访问相关网站或者服务。

二、Corefile配置

在 k8s 集群中用一下命令查看 coredns corefile 配置:

kubectl get configmap coredns -n kube-system -o yaml 

.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
}

配置解释:

  1. errors:错误信息标准输出;
  2. health:开启 coredns 服务的健康报告,URL为 http://localhost:8080/health;
  3. ready:监听8181端口,当coredns所有插件准备就绪时,访问该接口会返回200 OK;
  4. kubernetes:指明 cluster.local 后缀的域名都是 kubernetes 内部域名,coredns 会监听 service 的变化来维护域名关系,所以 cluster.local 相关域名都在这里解析;
  5. prometheus:coredns 的度量指标数据以 prometheus 的 key-value 的格式在 http://localhost:9153/metrics URI上提供;
  6. forward:非 kubernetes 集群中的其他任何域名查询都将转发到,指定的目的 server,如/etc/resolv.conf 或者IP(如8.8.8.8);
  7. cache:启用 service 解析缓存,单位是秒;
  8. loop:检测域名解析是否有死循环,如 coredns 转发给内网DNS服务器,而内网服务器又转发给 coredns,如果发现存在死循环,则强制终止 coredns 进程(kubernetes会重建);
  9. reload:检测 corefile(coredns.yaml)是否更改,在修改 configmap 配置后,默认2分钟后会优雅的自动加载;
  10. loadbalance:轮询 DNS 域名解析,如果一个域名存在多个记录则轮询解析;

标签:kubernetes,arpa,域名,DNS,coredns,COREDNS,解析,小记
From: https://blog.51cto.com/belbert/6038496

相关文章

  • 2023.02.04小记
    买到了想了很久的裙子今天加班,本来可以居家办公的,但是我选择来公司,溜溜我的新裙子和新小皮鞋旧图镇楼,2018年的我真好啊,这图还是当时的舍友帮我拍+P的当年的裙子今天......
  • A20地址线小记
    最初的处理器因为只有20根地址线,因此处理器只能寻址2^20B(=1MB)的物理地址空间,如果地址超过1MB范围,就会发生“地址回环”例如:指令jmpFFFFh:FFFFh,跟据实模式下寻址原理,将跳......
  • 一个网站首页重构小记
    负责网站运营的同事提了一个需求:要对网站的首页进行重新的设计。网站首页要能够可定制化。这个网站是公司的某位同事开发的,并且已经离职了。这网站的代码,是直接把前......
  • 【小记】如果 golang 内存不够了怎么办
    在看redis1.0源码时,总会看到需要申请内存的地方,如果申请不到需要大的内存就会返回NULL,然后在调用层抛出oom。比如listDup中在复制特殊value或者加入新节点时都有......
  • 2023.1.31 小记
    [CF528D]FuzzySearch首先考虑到只有四种字符。所以可以分四次来做。对于每一种字符,我们定义\(f(i)\)为在\(S\)中的每\(i\)位置是否可以匹配。\(f(i)\)就是如果......
  • 【小记】golang_map
    map前言:map几个操作实现有点复杂,即便之前看懂了没过多久也就忘了,这里简单做下记录。为了便于记忆,将mapassign的全过程以流程图的方式展示,其他省略mapassign在流程图......
  • coredns使用etcd
    前言CoreDNS使用ETCD存储主机记录。etcd安装略过。Corefile内容.:53{#绑定本机IPbind192.168.1.2#etcd地址etcd{path/coredns......
  • 使用Blade-build编译小记
    _||______||_______/_`/__|'_\||||/_\|(_|\__\|_)||_||__/\__,|___/_._......
  • coredns mysql 扩展使用+readyset 试用
    基于db进行dns记录的管理还是比较有用的,尤其在一些开发环境中,以下是一个使用同时也会尝试集成readyset(但是木有成功,应该是mysql编码兼容的问题)添加&构建插件方法比较简......
  • Source Insight 4.0 常用快捷键小记
    1、括号配对高亮:“在前括号左侧,后括号左侧”双击鼠标左键,可以选定匹配括号和其中内容(<>,(),L{R},[]之间) 高亮当前单词:F8语法窗口(隐藏/显示语法窗口):Alt+F8......