一 修改配置文件
1.1 下载解压
1 [root@master01 ~]# cd /opt/k8s/work/kubernetes/
2 [root@master01 kubernetes]# tar -xzvf kubernetes-src.tar.gz
提示:master01 节点已解压完毕,可直接修改配置。
1.2 修改配置
1 [root@master01 ~]# cd /opt/k8s/work/kubernetes/cluster/addons/dns/coredns
2 [root@master01 coredns]# cp coredns.yaml.base coredns.yaml
3 [root@master01 coredns]# source /root/environment.sh
4 [root@master01 coredns]# sed -i -e "s/__PILLAR__DNS__DOMAIN__/${CLUSTER_DNS_DOMAIN}/" -e "s/__PILLAR__DNS__SERVER__/${CLUSTER_DNS_SVC_IP}/" -e "s/__PILLAR__DNS__MEMORY__LIMIT__/200Mi/" coredns.yaml
提示:本步骤操作仅需要在master01节点操作。
二 创建 coredns
2.1 设置调度策略
提示:对于非业务应用(即集群内部应用)建议仅部署在master节点,如coredns及dashboard。
1 [root@master01 coredns]# kubectl label nodes master01 node-role.kubernetes.io/master=true
2 [root@master01 coredns]# kubectl label nodes master02 node-role.kubernetes.io/master=true
3 [root@master01 coredns]# kubectl label nodes master03 node-role.kubernetes.io/master=true
4 [root@master01 coredns]# vi coredns.yaml
1 ……
2 apiVersion: apps/v1
3 kind: Deployment
4 ……
5 spec:
6 replicas: 3 #建议增加副本数
7 ……
8 nodeSelector:
9 node-role.kubernetes.io/master: "true"
10 tolerations:
11 - key: node-role.kubernetes.io/master
12 operator: "Equal"
13 value: ""
14 effect: NoSchedule
15 ……
提示:本步骤操作仅需要在master01节点操作。
2.2 创建coredns并检查
1 [root@master01 coredns]# kubectl create -f coredns.yaml
2.3 检查 coredns 功能
1 [root@master01 coredns]# kubectl get all -n kube-system
三 确认验证
3.1 新建Deployment
参考《015.Kubernetes二进制部署检查集群》1.2步骤。
3.2 查看应用
1 [root@master01 work]# kubectl get pods -o wide
2 [root@master01 work]# kubectl get svc -o wide
提示:本步骤操作仅需要在master01节点操作。
3.3 创建测试pod
1 [root@master01 ~]# cd /opt/k8s/work
2 [root@master01 work]# source /root/environment.sh
3 [root@master01 work]# cat > dnsutils-ds.yml <<EOF
4 apiVersion: v1
5 kind: Service
6 metadata:
7 name: dnsutils-ds
8 labels:
9 app: dnsutils-ds
10 spec:
11 type: NodePort
12 selector:
13 app: dnsutils-ds
14 ports:
15 - name: http
16 port: 80
17 targetPort: 80
18 ---
19 apiVersion: apps/v1
20 kind: DaemonSet
21 metadata:
22 name: dnsutils-ds
23 labels:
24 addonmanager.kubernetes.io/mode: Reconcile
25 spec:
26 selector:
27 matchLabels:
28 app: dnsutils-ds
29 template:
30 metadata:
31 labels:
32 app: dnsutils-ds
33 spec:
34 containers:
35 - name: my-dnsutils
36 image: tutum/dnsutils:latest
37 command:
38 - sleep
39 - "3600"
40 ports:
41 - containerPort: 80
42 EOF
1 [root@master01 work]# kubectl create -f dnsutils-ds.yml
2 [root@master01 work]# kubectl get pods -lapp=dnsutils-ds
提示:本步骤操作仅需要在master01节点操作。
3.5 检查解析
1 [root@master01 work]# kubectl -it exec dnsutils-ds-8ds89 -- /bin/sh
2 root@dnsutils-ds-8ds89:/# cat /etc/resolv.conf
3 nameserver 10.20.0.254
4 search default.svc.cluster.local svc.cluster.local cluster.local
5 options ndots:5
6
7 [root@master01 work]# kubectl -ti exec dnsutils-ds-8ds89 -- nslookup kubernetes
8 [root@master01 work]# kubectl -ti exec dnsutils-ds-8ds89 -- nslookup www.baidu.com
9 [root@master01 work]# kubectl -ti exec dnsutils-ds-8ds89 -- nslookup nginx-svc
10 [root@master01 work]# kubectl -ti exec dnsutils-ds-8ds89 -- nslookup kube-dns.kube-system.svc
11 [root@master01 work]# kubectl -ti exec dnsutils-ds-8ds89 -- nslookup kube-dns.kube-system.svc.cluster.local
12 [root@master01 work]# kubectl -ti exec dnsutils-ds-8ds89 -- nslookup kube-dns.kube-system.svc.cluster.local.
提示:本步骤操作仅需要在master01节点操作。



