4-2 CoreDNS基础

更新时间:2023年2月

CoreDNS 简介

官网:CoreDNS: DNS and Service Discovery

官方文档:CoreDNS: DNS and Service Discovery

CoreDNS 插件以及插件文档:Plugins (coredns.io)

kubernetes 关于 CoreDNS 的描述:使用 CoreDNS 进行服务发现 | Kubernetes

CoreDNS 是一个用 GO 语言编写的 DNS 服务器。不同于其他优秀的 DNS 服务器(例如: BINDKnotPowerDNSUnbound),CoreDNS 非常灵活,几乎所有功能都外包到插件中

kubernetes 早期的 dns 组件有 skydns、kube-dns。目前,CoreDNS 就成了 Kubernetes 的默认 DNS 服务器

Kubernetes 版本与 kubeadm 安装的 CoreDNS 版本对应关系参考:deployment/CoreDNS-k8s_version.md

CoreDNS 的作用

参考:Service 与 Pod 的 DNS | Kubernetes

Kubernetes 中应用 Pod 的 IP 可能会随着销毁或创建而改变。Kubernetes 为 Service 和 Pod 创建 DNS 记录。 使得应用之间可以使用一致的 DNS 名称而非 IP 地址来进行相互访问。

Service 的 FQDN 如下

{
   ServiceName}.{
   Namespace}.svc.{
   ClusterDomain} 

Corefile 配置

参考:Corefile Explained (coredns.io)

Corefile 是 CoreDNS 的配置文件,定义了一些内容

  • DNS Server 的监听协议和端口
  • DNS Server 负责哪个 Zone 的权威(authoritative)DNS 解析
  • DNS Server 加载的插件

格式

Corefile 由一个个服务配置块组成,每个服务配置块定义了要解析的区域端口使用的插件等信息,如果需要解析根域,则使用点号 . 表示

格式

ZONE:[PORT] {
   
    # Zone Block
    [PLUGIN] ... {
   
        # Plugin Block
    }
}

解析根域,端口未指定则使用默认的 53 端口

. {
    # Plugins defined here.
}

目前,CoreDNS 接受四种不同的协议,可以在区域之前添加协议来指定使用的协议。四种协议如下

  • dns:// for plain DNS (默认协议,如果未明确指定协议,则使用该协议)
  • tls:// for DNS over TLS, see RFC 7858
  • https:// for DNS over HTTPS, see RFC 8484
  • grpc:// for DNS over gRPC
tls://example.net:53 {
    file db.example.net
    forward . tls://223.5.5.5:853 {
        tls_servername dns.alidns.com
        force_tcp
        max_fails 3
    }
}

Kubernetes 中的默认配置

在 Kubernetes 集群中,可以通过 configmap 获取安装的 CoreDNS 的默认配置,即 Corefile 文件

$ /etc/kubeasz/bin/kubectl edit configmap coredns -n kube-system
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an e
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值