八.kubernetes dns 部署

[在minion节点]

修改启动服务的参数

vim start_k8s_minion.sh

#添加
dns_ip="172.100.10.1"

#增加--cluster-dns  --cluster-domain
nohup kubelet --address=0.0.0.0 --port=10250 --v=1 --log_dir=/var/log/k8s/kubelet --hostname_override=$local_ip --api_servers=http://$master_ip:8080 --cluster-dns=$dns_ip --cluster-domain=cluster.local. --logtostderr=false &
重启服务
./start_k8s_minion.sh
下载相关镜像,由于国外镜像被墙,所以下载国内第三方镜像
docker pull chasontang/kubedns-amd64:1.7
docker pull chasontang/kube-dnsmasq-amd64:1.3
docker pull chasontang/exechealthz-amd64:1.1
给镜像打标签
docker tag chasontang/kubedns-amd64:1.7 gcr.io/google_containers/kubedns-amd64:1.7
docker tag chasontang/kube-dnsmasq-amd64:1.3 gcr.io/google_containers/kube-dnsmasq-amd64:1.3
docker tag  chasontang/exechealthz-amd64:1.1 gcr.io/google_containers/exechealthz-amd64:1.1

[在master节点]

准备dns的yaml文件

dns yaml文件位置: /root/kubernetes/cluster/addons/dns
文件名称:
skydns-rc.yaml.in
skydns-svc.yaml.in

cd /root/kubernetes/cluster/addons/dns
cp skydns-rc.yaml.in skydns-svc.yaml.in /root/
cd /root/
mv skydns-rc.yaml.in skydns-rc.yaml
mv skydns-svc.yaml.in skydns-svc.yaml
编辑dns的yaml文件
vim skydns-rc.yaml
replicas: {{ pillar['dns_replicas'] }}  
修改为  
replicas: 1
args:
# command = "/kube-dns"
- --domain={{ pillar['dns_domain'] }}.
- --dns-port=10053
{{ pillar['federations_domain_map'] }}

修改为

args:
# command = "/kube-dns"
- --domain=cluster.local.
- --dns-port=10053
- --kube-master-url=http://10.2.1.11:8080
- -cmd=nslookup kubernetes.default.svc.{{ pillar['dns_domain'] }} 127.0.0.1 >/dev/null && nslookup kubernetes.default.svc.{{ pillar['dns_domain'] }} 127.0.0.1:10053 >/dev/null

修改为

- -cmd=nslookup kubernetes.default.svc.cluster.local. 127.0.0.1 >/dev/null && nslookup kubernetes.default.svc.cluster.local. 127.0.0.1:10053 >/dev/null
vim skydns-svc.yaml
clusterIP: {{ pillar['dns_server'] }}

修改为

clusterIP: 172.100.10.1
启动rc与svc
kubectl create -f skydns-rc.yaml
kubectl create -f skydns-svc.yaml
测试

vim test.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: test
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: test
        image: 10.2.3.223:5000/base:v1.2.1_autoserver
        ports:
        - containerPort: 80
          protocol: TCP
        volumeMounts:
        - mountPath: /work
          name: test-volume
      volumes:
        - name: test-volume
          hostPath:
            path: /work/test
---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: test
  name: test
  namespace: kube-system
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 30080
  selector:
    app: test
启动
kubectl create -f test.yaml
测试,登陆的刚刚启动容器
ssh 172.100.35.3
查看DNS
cat /etc/resolv.conf 
search kube-system.svc.cluster.local. svc.cluster.local. cluster.local.
nameserver 172.100.10.1
options ndots:5
ping test
PING test.kube-system.svc.cluster.local (172.100.252.152) 56(84) bytes of data.

可以解析,成功

参考资料
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • docker实现了更便捷的单机容器虚拟化的管理, docker的位置处于操作系统层与应用层之间; 相对传统虚拟化(...
    Harvey_L阅读 20,024评论 3 44
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 8,210评论 0 7
  • 说明本次redis集群安装在rhel6.8 64位机器上,redis版本为3.2.8,redis的gem文件版本为...
    读或写阅读 15,397评论 3 9
  • 早上好!#幸福实修#~每天进步1%#幸福实修10班陈月莲~杭州 20170814~21/30 【幸福三朵玫瑰】 昨...
    馨儿_dda0阅读 1,404评论 0 1