2-4 Coredns域名解析的流程和Corefile配置

发布于:2023-01-26 ⋅ 阅读:(547) ⋅ 点赞:(0)

前言

CoreDNS 是一个DNS服务器。它是用Go编写的。由于其灵活性,它可以在多种环境中使用。目前K8s主要使用CoreDNS对为集群提供域名解析服务。



解析流程

coredns域名解析流程

  1. 容器nginx需要访问百度,ping一下百度域名baidu.com。
  2. 该请求会先被kube-dns(Coredns服务)捕获。
  3. 域名解析转发到coredns集群,根据负载均衡会分配到某个coredns pod。
  4. coredns pod再通过api-server转到k8s集群服务。
  5. 最后k8s集群从etcd数据库中获取到域名解析结果。
  6. etcd把结果原路返回到k8s,依次类推,Nginx获取到baidu对应的IP地址。
  7. 解析结果会保存到域名缓存,下次访问会更加快速。

安装Coredns

coredns的安装部署需要使用yaml文件,可通过以下2个途径获取:

https://github.com/coredns/deployment/blob/master/kubernetes/coredns.yaml.sed

/root/kubernetes/cluster/addons/dns/coredns/coredns.yaml.base

将模板yaml文件拷贝成coredns.yaml,编辑配置文件(见Corefile配置),然后执行部署。

kubectl apply -f coredns.yaml

kubectl get svc -A
default       kubernetes   ClusterIP   10.68.0.1    <none>        443/TCP                  7d2h
kube-system   kube-dns     ClusterIP   10.68.0.2    <none>        53/UDP,53/TCP,9153/TCP   8m58s

kubectl get pod -A
kube-system   coredns-f58cf8cd9-4sxn4                    1/1     Running   0              70s
kube-system   coredns-f58cf8cd9-mknbj                    1/1     Running   0              70s

Corefile配置

下载完coredns.yaml配置文件后,需要根据实际环境进行配置,多数配置在corefile选项下:

vim coredns.yaml

# 修改__DNS__DOMAIN__ 在/etc/kubeasz/clusters/k8s-cluster/hosts文件的CLUSTER_DNS_DOMAIN选项找到
77 kubernetes cluster.local in-addr.arpa ip6.arpa {

# 指定互联网域名服务器,最大连接数可扩大
83 forward . 114.114.114.114 {
84   max_concurrent 2000
85 }

# pod副本数量,取消注释后,修改为2
103 replicas: 2

# 选择coredns镜像源,可在部署节点docker images查看
142 image: easzlab.io.local:5000/coredns/coredns:1.9.3

# 资源限制放宽,生成环境4核4G以上
145	limits:
146   cpu: 400m
147   memory: 4096Mi

# kube-dns地址,可在某个pod的/etc/resolv.conf查看
210 selector:
211   k8s-app: kube-dns
212 clusterIP: 10.68.0.2


部署后检查

可以部署一个busybox pod,然后进入容器进行ping实验:

kubectl exec -it busybox-5587dd9dcc-2fm9v sh -n kube-system
/ # ping baidu.com
PING baidu.com (110.242.68.66): 56 data bytes
64 bytes from 110.242.68.66: seq=0 ttl=127 time=43.034 ms
64 bytes from 110.242.68.66: seq=1 ttl=127 time=43.003 ms
64 bytes from 110.242.68.66: seq=2 ttl=127 time=43.135 ms



网站公告

今日签到

点亮在社区的每一天
去签到