coredns基本原理

发布时间 2023-10-29 10:46:45作者: 王景迁

k8s 1.19.0
coredns 1.7.0

dns ip获取过程

dns请求到达coredns后,从list/watch本地缓存indexer获取对象,返回结果。

外部域名返回用户配置的IP。

有状态应用Pod域名:pod-name.svc-name.namespace.svc.cluster.local
返回Pod IP。
Headless Cluster:svc-name.namespace.svc.cluster.local
返回service对应的endpoints地址。
Cluster Service: svc-name.namespace.svc.cluster.local
返回service对应的Cluster IP。

外部域名

自定义域名设置在kube-system命名空间下的coredns中后,挂载到coredns容器的/etc/coredns目录下。

plugin\reload\reload.go
hook函数
定时通过md5sum比较Corefile文件内容是否发生了变化,变化后重新加载该文件。

修改后,默认重新加载coredns这个ConfigMap时间是[22.5,37.5)s。
plugin\reload\setup.go

注册该插件位置

coredns相关日志

参考资料

https://xiaorui.cc/archives/7346