1、CoreDNS 基本概念
CoreDNS作为域名发现的项目,原生集成Kubernetes,它的目标是成为云原生的DNS服务器和服务发现的参考解决方案。
从Kubernetes 1.12开始,CoreDNS就成了Kubernetes的默认DNS服务器,但 kubeadm默认安装CoreDNS的时间要更早。在Kuberentes 1.9版本中,使用 kubeadm方式安装的集群可以通过以下命令直接安装CoreDNS。

kubeadm init --feature-gates=CoreDNS=true

从功能角度看,CoreDNS更像是一个通用的DNS方案,通过插件模式极大地扩展自身功能,从而适用于不同的场景。
CoreDNS有以下3个特点。
1 插件化(Plugins)
2 配置简单化。
3 一体化的解决方案。区别于Kube-dns“三合一”的架构,CoreDNS编译出来就是一个单独的可执行文件,内置了缓存、后端存储管理和健康检查等功能,无须第三方组件辅助实现其他功能,从而使部署更方便,内存管理更安全。

Corefile
orefile是CoreDNS的配置文件(源于Caddy框架的配置文件Caddyfile),它定义了:
DNS server以什么协议监听在哪个端口(可以同时定义多个server监听不同端口);
DNS负责哪个zone的权威(authoritative)DNS解析;
DNS server将加载哪些插件。

通常,一个典型的Corefile格式如下:
在这里插入图片描述
coreDNS添加自定义hosts
1 编辑configmap (coredns)
kubectl edit configmap -n kube-system coredns
2 增加hosts节点
Corefile: |
.:53 {
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
}
hosts {
192.168.11.241 www.girls.cn
192.168.11.240 harbor.girls.cn
fallthrough
}

prometheus :9153
forward . “/etc/resolv.conf”
cache 30
loop
reload
loadbalance
}
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐