一 修改配置文件
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节点操作。