coredns基本原理

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目录下。除此之外,还支持解析指定域名走上游dns服务器。

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

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

注册该插件位置

coredns相关日志

参考资料

https://xiaorui.cc/archives/7346

 

posted on 2023-10-29 10:38  王景迁  阅读(132)  评论(0)    收藏  举报

导航