CoreDNS配置kubernetes作为后端
概述
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=CoreDNS
Documentation=https://coredns.io
[Service]
ExecStart=/opt/coredns/bin/coredns \
-conf /opt/coredns/cfg/Corefile
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.targe
# systemctl start coredns
# systemctl enable coredns
CoreDNS配置kubernetes作为后端的更多相关文章
- CoreDNS配置etcd作为后端
配置说明 官方有使用etcd插件的详细说明,地址如下:https://coredns.io/plugins/etcd/ 需要特别说明的是,目前coredns只支持etcd v2版本的api 这里直接摘 ...
- 三、安装并配置Kubernetes Node节点
1. 安装并配置Kubernetes Node节点 1.1 安装Kubernetes Node节点所需服务 yum -y install kubernetes 通过yum安装kubernetes服 ...
- CoreDNS for kubernetes Service Discovery
一.CoreDNS简介 Kubernetes包括用于服务发现的DNS服务器Kube-DNS. 该DNS服务器利用SkyDNS的库来为Kubernetes pod和服务提供DNS请求.SkyDNS2的作 ...
- 配置kubernetes UI图形化界面
配置Kubernetes网络 在master和nodes上都需要安装flannel yum install flannel 在master和nodes上都需要配置flannel vi /etc/sys ...
- 【DevOps】在CentOS中安装Rancher2,并配置kubernetes集群
准备 一台CentOS主机,安装DockerCE,用于安装Rancher2 一台CentOS主机,安装DockerCE,用于安装kubernetes集群管理主机 多台CentOS主机,安装Docker ...
- 配置kubernetes.client的参数遇到的坑
配置kubernetes.client遇到的一些坑: 一,job-name不能重名,如果job-name已经有了,再创建job,则会发生冲突cliflict 这样将会报以下错误:Reason : Co ...
- 快速安装与配置kubernetes集群搭
Kubernetes是什么? 首先,它是一个全新的基于容器技术的分布式架构领先方案.这个方案尽然很新,但它是谷歌十几年以来大规模应用容器技术的经验积累和升华的一个重要成果.确切地说,kubernete ...
- 【Linux】【Services】【SaaS】Docker+kubernetes(8. 安装和配置Kubernetes)
1. 概念 1.1. 比较主流的任务编排系统有mesos+marathon,swarm,openshift(红帽内部叫atom服务器)和最著名的kubernetes,居然说yarn也行,不过没见过谁用 ...
- windows server,nginx安装,配置,运行nodeJS后端的web项目的实现,以及错误分析及解决方法
一.安装nginx 下载windows版nginx (http://nginx.org/download/nginx-1.12.2.zip),之后解压到需要放置的位置(C:\nginx) 二.将Ngi ...
随机推荐
- final文案+美工展示
作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/1438 团队介绍:thunder 组成员及各位博客地址: 1.王航:htt ...
- IDEA下载插件超时的原因
setting中红框的对勾去掉就可以下载插件了
- Daily Scrum (2015/11/7)
今晚谢金洛同学的UI工作完成,我们进行了UI和后端的拼接,准备开始规范化地进行系统测试. 成员 今日任务及成果 时间 明日任务 符美潇 1.把之前PM分配的编码任务及其说明准备好发给PM 1h 待定 ...
- 小组冲刺第十一天站立会议(发布Alpha版+网站链接)
注: “助成”招聘网站链接:http://58.87.74.131:8080/zhucheng 欢迎大家进行评测. 一.任务看板: 二.燃尽图: 三.团队成员合照: 四.任务总结: 今天我们发布网站B ...
- C++:构造函数3——浅拷贝和深拷贝
一.默认拷贝构造函数 拷贝构造函数是一种特殊的构造函数(详情见:http://www.cnblogs.com/duwenxing/p/7429777.html),如果用户在定义类时没有显式地编写拷贝构 ...
- java 面试 -- 4
Java面试知识点总结 本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有 ...
- c++工厂模式(Factory method)
下面以女娲造黑人,白人,黄种人的例子来介绍一下工厂模式. 1.工厂的接口,相当于造人工厂总部. class IHumanFactory { public: IHumanFactory(void) { ...
- 【CS231N】7、卷积神经网络
一.疑问 1. assignments2 在代码文件FullyConnectedNets.ipynd 中,有代码如下: # Test the affine_forward function num_i ...
- SQL SERVER安装(2008)
首先需要下载SQL SERVER2008安装程序:为省的麻烦给出网盘地址自行下载,百度网盘:密码:hslb 1.下载到你所选定文件夹中,我下载在E:\SQL SERVER中 2.选择第一个.exe文件 ...
- 复利计算测试(C语言)
对我们和复利计算程序,写单元测试. 有哪些场景? 期待的返回值 写测试程序. 运行测试. 测试模块 测试输入 预期结果 运行结果 bug跟踪 计算终值 (本金,年限,利率) 终值 1 (100 ...