K8S安装coredns

时间:2022-11-18 12:02:17

一、coredns介绍

CoreDNS作为CNCF中托管的一个域名发现的项目,原生集成Kubernetes,它的目标是成为云原生的DNS服务器和服务发现的参考解决方案。所以,CoreDNS走的也是Traefik的路子,降维打击SkyDNS。

从Kubernetes 1.12开始,CoreDNS就成了Kubernetes的默认DNS服务器,但 kubeadm默认安装CoreDNS的时间要更早。在Kuberentes 1.9版本中,使用 kubeadm方式安装的集群可以通过以下命令直接安装CoreDNS。


二、文件解析

三、coredns安装

wget https://dl.k8s.io/v1.24.2/kubernetes.tar.gz
tar xvf kubernetes.tar.gz
cp kubernetes/cluster/addons/dns/coredns/coredns.yaml.base k8s-03/yml/coredns.yaml

    如果使用的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

K8S安装coredns


  2、修改内存

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

       修改coredns pod内存上限

K8S安装coredns

K8S安装coredns

 

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

K8S安装coredns

K8S安装coredns

 

K8S安装coredns

 

  修改镜像地址:

  ​

K8S安装coredns

  手动拉取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

K8S安装coredns

  

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

kubectl apply -f coredns_v1.9.3.yaml