【容器化】Kubernetes二进制高可用部署10-Coredns部署

零、目录

一、说明

本文将部署Kubernetes的dns服务插件-coredns

github: https://github.com/coredns/deployment
official: https://coredns.io/

版本对应:

CoreDNS版本 Kubernetes版本
v1.8.4 v1.22
v1.8.0 v1.21
v1.7.0 v1.19 v1.20
v1.6.7 v1.18
v1.6.5 v1.17

二、获取coredns的部署文件

当前Kubernetes压缩包中已包含了一些扩展插件的部署yaml文件,其中就包括coredns的,在kubernetes-src.tar.gz文件中,解压出来进入cluster/addons/dns/coredns目录就能找到coredns相关的部署yaml文件

1
2
3
4
# 解压文件
tar -C /usr/local/src/kubernetes/kubernetes-src/ -zxvf /usr/local/src/kubernetes/kubernetes-src.tar.gz
# 进入coredns相关文件目录
cd /usr/local/src/kubernetes/kubernetes-src/cluster/addons/dns/coredns/

三、参数配置

1
2
3
4
5
6
7
8
9
10
# 修改其中的文件transforms2sed.sed
# 把$DNS_SERVER_IP改为kubelet启动时的DNS服务IP参数,当前为169.169.0.100
# 把$DNS_DOMAIN改为kubelet启动时的DNS域名参数,当前为cluster.local
# $SERVICE_CLUSTER_IP_RANGE此值貌似没有使用,暂不用更改
# 把$DNS_MEMORY_LIMIT改为自己设定的pod内存limit大小,官方推荐是170Mi
s/__PILLAR__DNS__SERVER__/$DNS_SERVER_IP/g
s/__PILLAR__DNS__DOMAIN__/$DNS_DOMAIN/g
s/__PILLAR__CLUSTER_CIDR__/$SERVICE_CLUSTER_IP_RANGE/g
s/__PILLAR__DNS__MEMORY__LIMIT__/$DNS_MEMORY_LIMIT/g
s/__MACHINE_GENERATED_WARNING__/Warning: This is a file generated from the base underscore template file: __SOURCE_FILENAME__/g
1
2
# 执行参数更新
sed -f transforms2sed.sed coredns.yaml.base > coredns.yaml

四、部署coredns服务

1
kubectl apply -f coredns.yaml

五、验证测试

1
2
# 查看coredns的相关资源是否启动成功,包含一个coredns的deployment,一个kube-dns的service,对应一个kube-dns的endpoints
kubectl get deploy,pod,svc,endpoints -A -owide

(•̀ᴗ•́)و ̑̑

Share