coredns解析流程和corefile配置

  

Core-DNS解析流程

  当pod1应用想通过dns域名的方式访问pod2则首先根据容器中/etc/resolv.conf内容配置的namserver地址,向dns服务器发出请求,由service将请求抛出转发给kube-dns service,由它进行调度后端的core-dns进行域名解析。解析后请求给kubernetes service进行调度后端etcd数据库返回数据,pod1得到数据后由core-dns转发目的pod2地址解析,最终pod1请求得到pod2。 

  

  运行coredns根据实际使用规格,调整coredns的副本数量和资源上限限制

root@deploy:~# vim coredns_v1.9.3.yaml

 

  

coredns configmap配置

root@deploy:~# kubectl get configmaps -n kube-system
root@deploy:~# kubectl edit configmaps coredns -n kube-system

 

 

  coredns配置解释:

       errors:错误信息标准输出

       health:在CoreDNS的http://localhost:8080/health 端口提供CoreDNS服务的健康报告。

       ready:监听8181端口,当coredns的插件都已就绪时,访问该接口会返回200 OK。

 

 

       kubernetes:CoreDNS将基于kubernetes service name进行DNS查询并返回查询记录给客户端。

       promethus:CoreDNS的度量指标数据以Promethus的key-value的格式在http://localhost:9153/metrics URI上提供

       forward:不是Kubernetes集群内的其他任何域名的查询都将转发给预定义的目的DNS服务器,如(/etc/resolv.conf中指定的nameserver)

       例如:

harbor.cncf.net {
forward . 10.10.100.2
}

       cache:启用service解析缓存,单位为秒。

 

       loop:监测域名解析是否有死循环,如coredns转发给内网DNS服务器,而内网DNS服务器又转发给coredns,如果发现解析是死循环,则强制终止CoreDNS进程(kubernetes会重建)。

 

       reload:监测corefile是否更改,在重新编辑configmap配置后,默认2分钟后会优雅的自动加载。

 

       loadbalance:轮询DNS域名解析,如果一个域名存在多个A主机名记录轮询解析。

 

coredns下载:

  coredns的github项目下载

         选择deployment repository

 

       选择kubernetes目录

  

       选择coredns.yaml.sed

  通过kubernetes的github的项目下载

         通过kubernetes的github的项目,从kubernetes源码包内获取coredns的yaml文件

         https://github.com/kubernetes/kubernetes/releases

       点击Downloads for v1.2x下载

       下载加压后打开kubernetes/cluster/addons/dns/coredns目录下

  

  

       复制模板文件coredns.yaml.base,修改后进行应用安装

root@deploy:/usr/local/src/kubernetes/cluster/addons/dns/coredns# cp coredns.yaml.base /root/coredns.yaml

 

  

  1、修改域名

       如果使用的kubeasz部署的k8s则查看集群hosts文件来获取集群配置的dns名称

root@deploy:~# grep "DNS_DOMAIN" /etc/kubeasz/clusters/k8s-cluster1/hosts
CLUSTER_DNS_DOMAIN="cluster.local"

 

       修改coredns的yaml,将DNS_DOMAIN修改为当前k8s集群的dns后缀名称

root@deploy:~# vim coredns.yaml

       修改_DNS_DOMAIN_ 替换为 cluster.local

  2、修改内存

       生产建议上限为 cpu:200m,内存4Gi

       修改coredns pod内存上限

 

       修改coredns地址,地址为service地址,也是pod容器内的dns地址

 

 

  修改镜像地址:

  

  手动拉取coredns镜像,并上传到本地harbor

root@deploy:~# docker pull coredns/coredns:1.9.3
docker.io/coredns/coredns:1.9.3
root@deploy:~# docker tag coredns/coredns:1.9.3 harbor.cncf.net/baseimages/coredns/coredns:1.9.3
root@deploy:~# docker push harbor.cncf.net/baseimages/coredns/coredns:1.9.3

 

  修改coredns镜像地址为本地harbor

  

  创建coredns,并将yaml文件修改当前版本作为归档

root@deploy:~# mv coredns.yaml coredns_v1.9.3.yaml
root@deploy:~# kubectl apply -f coredns_v1.9.3.yaml

 

       查看pod 容器dns地址为clusterip

  查看coredns

root@deploy:~# kubectl get svc -A

 

  查看coredns pods

       pod成功通过kube-dns解析外网域名

 

posted @   PunchLinux  阅读(6533)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
  1. 1 Get Lucky Daft Punnk
  2. 2 烦恼歌 张学友
  3. 3 Way Back Home Conor Maynard
  4. 4 Put A Little Love In Your Heart Jackie DeShannon
  5. 5 菊次郎的夏天 久石譲
  6. 6 一丝不挂 陈奕迅
  7. 7 日落大道 梁博
  8. 8 Rage your dream m.o.v.e
  9. 9 Don't Be So Shy Imany
  10. 10 芒种 腾格尔
Way Back Home - Conor Maynard
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

Not available

点击右上角即可分享
微信分享提示