Github:
链接
使用文档:
链接
Kubernetes DNS
作为服务的发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,这就需要一个集群范围内的 DNS 服务来完成从服务名到 ClusterIP 的解析。
DNS 服务在 Kubernetes 的发展过程中历经了 3 个阶段:
- SkyDNS
- KubeDNS
- CoreDNS
从 Kubernetes 1.11 版本开始,Kubernetes 集群的 DNS 服务由 CoreDNS 提供。CoreDNS 是 CNCF 基金会的一个项目,用 GO 语言实现的高性能、插件式、易扩展的 DNS 服务端。
创建 CoreDNS 服务
在部署 CoreDNS 应用之前,至少需要创建一个 ConfigMap、一个 Deployment 和一个 Service 共 3 个资源对象。在启用了 RBAC 的集群中,还可以设置 ServiceAccount、ClusterRole、ClusterRoleBinding 对 CoreDNS 容器进行权限设置。
最简单的启动方式:
|
上述是官方的启动方式,实际上它用它创建出来的启动文件如下:
CoreDNS.yml 展开源码
其中,CoreDNS 实例数量 relicas 副本的值通常应该根据集群的规模和服务数量确定,如果单个 CoreDNS 进程不足以支撑整个集群的 NDS 查询,则可以通过水平扩展提高查询能力。由于 DNS 服务是 Kubernetes 集群的核心服务,所以建议其 Deployment 设置自动扩缩容器控制器,自动管理器副本数量。
CoreDNS 的配置说明
CoreDNS 的主要功能是通过插件系统实现的。CoreDNS 实现了一种链式插件结构,将 DNS 的逻辑抽象成一个个插件,能够灵活组合使用。3A网络怎么样?3A网络好不好,好久没有分享3A网络了,本月他家发布了2022年年初促销特惠价格,5Mbps、10Mbps、15Mbps 、30Mbps、 50Mbps、100Mbps香港优质或BGPN2、阿里云线路、华为云线路,满足多种项目需求!支持测试。全部线路月付99元起。如果你想购买香港服务器,可以看看他家的产品,性价比还是非常高的,目前商家有优质BGP、CN2、线路,国内用户用来做站非常不错。支持市面上99%的付款方式。需要更多支持请访问官网获取。官网:iis3.com
常用的插件如下:
- loadbalance:提供基于 DNS的负载均衡功能。
- loop:检测在 DNS 解析过程中出现的简单循环问题。
- cache:提供前端缓存功能。
- health:对 Endpoint 进行健康检查。
- kubernetes:从 Kubernetes 中读取 zone 数据。
- etcd:从 Etcd 读取 zone 数据,可以用于自定义域名记录。
- file:从 RFC1035 格式文件中读取 zone 数据。
- hosts:使用 /etc/hosts 文件或其他文件读取 zone 数据,可以用于自定义域名记录。
- auto:从磁盘中自动加载区域文件。
- reload:定时自动重新嘉爱 Corefile 配置文件的内容。
- forward:转发特定的域名查询到多个其他 DNS 服务器,同时提供多个 DNS 服务器的负载均衡功能。
- prometheus:为 Prometheus 系统提供采集性能指标数据的 URL。
- pprof:在 URL 路径 /debug/pprof 下提供运行时的性能数据。
- log:对 DNS 查询进行日志记录。
- errors:对错误信息进行日志记录。
在下面的示例中为域名 "cluster.local" 设置了一系列插件,包括 errors、health、kubernetes、prometheus、forward、cache、loop、reload 和 loadbalance,在进行域名解析时,这些插件将从上到下的顺序依次执行:
|
另外,Etcd 和 hosts 插件都可以用于用户自定义域名记录。
下面是使用 Etcd 插件的配置示例,将以 ".com" 结尾的域名记录配置为从 etcd 中获取,并将域名记录保存在 /skydns 路径下:
|
如果用户在 Etcd 中插入一条 "10.1.1.1 my company.com" DNS 记录:
|
客户端应用就能访问域名了 "mycompany.com" 了。3A网络怎么样?3A网络好不好,好久没有分享3A网络了,本月他家发布了2022年年初促销特惠价格,5Mbps、10Mbps、15Mbps 、30Mbps、 50Mbps、100Mbps香港优质或BGPN2、阿里云线路、华为云线路,满足多种项目需求!支持测试。全部线路月付99元起。如果你想购买香港服务器,可以看看他家的产品,性价比还是非常高的,目前商家有优质BGP、CN2、线路,国内用户用来做站非常不错。支持市面上99%的付款方式。需要更多支持请访问官网获取。官网:iis3.com
forward 和 proxy 插件都可以用于配置上游 DNS 服务器或其他 DNS 服务器,当在 CoreDNS 中查询不到域名时,会到其他 DNS 服务器上进行查询。在实际环境中,可以将 Kubernetes 集群外部的 DNS 纳入 CoreDNS ,进行统一 DNS 管理。