我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解CoreDNS作为kubernetes后端的DNS服务器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解CoreDNS作为kubernetes后端的DNS服务器

本篇文章给大家分享的是有关如何理解CoreDNS作为kubernetes后端的DNS服务器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

coredns之所以如此名声大噪,就是因为从kubernetes1.9开始引入,作为kubernetes内部服务发现的默认dns。毫无疑问kubernetes是coredns的后端之一,所以我们讲coredns,就从kubernetes作为其后端开始。

coredns的诸多特性网上很多文章都有提及,在这里不再赘述。简单对比下其相对于bind和skydns的优势:

bind可以将解析存储到mysql或者文件中,coredns也可以将解析存储到etcd或者文件中,也支持将kubernetes作为其后端,直接调用kubernetes的api获取解析数据,然后缓存到本地内存。coredns支持插件扩展,目前在第三方插件中还同时支持将powerdns及amazondns作为其后端,后续还会支持越来越来的后端。bind在kubernetes的应用场景下,基本无用武之地。

coredns本身就是skydns的继任者,支持skydns的所有特性,而且性能更好,更易于扩展。其插件式特性无论是bind还是skydns都无法比拟。

coredns官方网站地址:https://coredns.io

coredns代码地址: https://github.com/coredns/coredns

coredns官方插件地址:https://coredns.io/plugins

coredns第三方插件地址:https://coredns.io/explugins/

配置kubernetes后端存储

配置说明

其实官方有kubernetes插件的相关示例及配置说明,地址如下:https://coredns.io/plugins/kubernetes/

我这里就以官方的配置示例作说明:

kubernetes [ZONES...] {    resyncperiod DURATION    endpoint URL [URL...]    tls CERT KEY CACERT    namespaces NAMESPACE...    labels EXPRESSION    pods POD-MODE    endpoint_pod_names    upstream [ADDRESS...]    ttl TTL    fallthrough [ZONES...]}

下面对一些常用参数作下说明:

resyncperiod: 用于从kubernetes的api同步数据的时间间隔

endpoint: 指定kubernetes的api地址,coredns会自动对其执行健康检查并将请求代理到健康的节点上。示例如下:

endpoint https://10.1.61.129:6443 https://10.1.61.130:6443

tls: 用于指定连接远程kubernetes api的相关证书。示例:

tls admin.pem admin-key.pem ca.pem

pods: 指定POD-MODE,有以下三种:

disabled:默认

insecure:返回一个A记录对应的ip,但并不会检查这个ip对应的Pod当前是否存在。这个选项主要用于兼容kube-dns

verified:推荐的方式,返回A记录的同时会确保对应ip的pod存在。比insecure会消耗更多的内存。

upstream: 定义外部域名解析转发的地址,可以是一个ip地址,也可以是一个resolv.conf文件。示例:

upstream 8.8.8.8:53 8.8.4.4:53

ttl: 默认5s,最大3600s

示例

一个完整的配置示例:

# /opt/coredns/cfg/Corefile.:53 {    kubernetes wh01 {        resyncperiod 10s        endpoint https://10.1.61.175:6443        tls admin.pem admin-key.pem ca.pem        pods verified        endpoint_pod_names        upstream /etc/resolv.conf    }    health    log /var/log/coredns.log    prometheus :9153    proxy . /etc/resolv.conf    cache 30    reload 10s}

也可以使用如下写法:

wh01 {    kubernetes {        resyncperiod 10s        endpoint https://10.1.61.129:6443        tls admin.pem admin-key.pem ca.pem        pods verified        endpoint_pod_names        upstream /etc/resolv.conf    }    health    log    errors    prometheus :9153    proxy . /etc/resolv.conf    cache 30    reload 10s}

其他配置也简单作下说明:

health:插件,用于检测当前配置是否存活,默认监听http 8080端口,可配置

log: 插件,将日志打印到标准输出

errors:将错误打印到标准输出

prometheus: 插件,用于prometheus监控

proxy: wh01之外的域名解析都通过proxy指定的地址实现代理

cache: 插件,用于在内存中缓存dns解析,单位为s

reload: 插件,单位为s,如果配置文件发生变更,自动reload的间隔

启动coredns

nohup /opt/coredns/bin/coredns -conf /opt/coredns/cfg/Corefile &

使用systemd启动coredns

# cat /lib/systemd/system/coredns.service[Unit]Description=CoreDNSDocumentation=https://coredns.io[Service]ExecStart=/opt/coredns/bin/coredns \  -conf /opt/coredns/cfg/CorefileRestart=on-failureRestartSec=5[Install]WantedBy=multi-user.targe
# systemctl start coredns# systemctl enable coredns

以上就是如何理解CoreDNS作为kubernetes后端的DNS服务器,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解CoreDNS作为kubernetes后端的DNS服务器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解CoreDNS作为kubernetes后端的DNS服务器

本篇文章给大家分享的是有关如何理解CoreDNS作为kubernetes后端的DNS服务器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。coredns之所以如此名声大噪,就是因
2023-06-05

如何理解Fedora DNS服务器客户端

这篇文章将为大家详细讲解有关如何理解Fedora DNS服务器客户端,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。DNS有很多值得学习的地方,这里我们主要介绍DNS服务器,包括介绍DNS服务
2023-06-16

负载均衡器如何处理后端服务器的故障

负载均衡器可以通过以下方式处理后端服务器的故障:监控后端服务器:负载均衡器会定期检查后端服务器的状态,例如响应时间、负载情况等,以便及时发现故障。健康检查:负载均衡器会定期向后端服务器发送健康检查请求,检查其是否正常运行。如果发现后端服务器
负载均衡器如何处理后端服务器的故障
2024-04-17

Nginx作为Docker容器的Web服务器配置详解(在Docker中如何配置Nginx作为Web服务器?)

在Docker中配置Nginx作为Web服务器涉及以下步骤:创建包含Nginx和依赖项的Docker镜像。构建镜像并运行Nginx容器,将容器端口映射到主机端口。优化Nginx配置,包括虚拟主机、根目录、错误页面、SSL/TLS、缓存等。使用日志记录和监控工具管理和监控容器。Nginx配置的优化可以提高性能、安全性、可用性和可管理性。通过Nginx的强大功能和Docker的轻量级,可以轻松部署和托管可扩展、健壮且安全的Web应用程序。
Nginx作为Docker容器的Web服务器配置详解(在Docker中如何配置Nginx作为Web服务器?)
2024-04-02

阿里云服务器为何如此便宜?解析背后的原因

阿里云是中国最大的云计算服务提供商之一,其服务器价格相对较低,是许多人选择阿里云的主要原因。那么,阿里云服务器为何如此便宜呢?本文将从几个方面详细解析其背后的原因。一、技术优势阿里云在云计算领域具有明显的技术优势。首先,阿里云的云计算平台采用了自主研发的神龙架构,该架构在性能、安全性和可扩展性方面具有显著优势。其
阿里云服务器为何如此便宜?解析背后的原因
2023-10-30

编程热搜

目录