设为首页 收藏本站
查看: 1971|回复: 0

[经验分享] 配置k8s dns

[复制链接]

尚未签到

发表于 2018-1-5 17:40:23 | 显示全部楼层 |阅读模式
  DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址。
  Cluster DNS扩展插件用于支持k8s集群系统中各服务之间发现与调用。
  组件:
  ·SkyDNS 提供DNS解析服务
  ·Etcd 存储DNS信息
  ·Kube2sky 监听kubernetes,当有Service创建时,生成相应的记录到SkyDNS。

1.修改所有node的配置文件:/etc/kubernetes/kubelet  kubernetes-node1,kubernetes-node2,kubernetes-node3:
[iyunv@kubernetes-node2 ~]# tail -n 1 /etc/kubernetes/kubelet

  KUBELET_ARGS="--cluster-dns=10.254.254.254 --cluster-domain=cluster.local"

2.所有node节点都重新启动服务
  systemctl restart kubelet.service



3.根据namespace分为不同的名称空间,将系统服务统一放到一个单独的空间:kube-system,由于默认空间只有default,我们首先要创建kube-system空间。
[iyunv@kubernetes-master pods]# cat kube-system.yml

  apiVersion: v1
  kind: Namespace
  metadata:
  name: kube-system

4.在master服务器上编辑ReplicationController文件dns-rc.yml

  

apiVersion: v1  

kind: ReplicationController  

metadata:  

name: kube-dns-v11  

namespace: kube-system  

labels:  

k8s-app: kube-dns  

version: v11  

kubernetes.io/cluster-service: "true"  

spec:  

replicas: 1  

selector:  

k8s-app: kube-dns  

version: v11  

template:  

metadata:  

labels:  

k8s-app: kube-dns  

version: v11  

kubernetes.io/cluster-service: "true"  

spec:  

containers:  

- name: etcd  

image: docker.gaoxiaobang.com/kubernetes/etcd-amd64:2.2.1  

resources:  

limits:  

cpu: 100m  

memory: 500Mi  

requests:  

cpu: 100m  

memory: 50Mi  

command:  

- /usr/local/bin/etcd  

- -data-dir  

- /var/etcd/data  

- -listen-client-urls  

- http://127.0.0.1:2379,http://127.0.0.1:4001  

- -advertise-client-urls  

- http://127.0.0.1:2379,http://127.0.0.1:4001  

- -initial-cluster-token  

- skydns-etcd  

#volumeMounts:  

#- name: etcd-storage  

#  mountPath: /var/etcd/data  

- name: kube2sky  

image: docker.gaoxiaobang.com/kubernetes/kube2sky:1.14  

args:  

# command = "/kube2sky"  

- --domain=cluster.local  

- --kube-master-url=http://10.64.8.68:8080  

resources:  

limits:  

cpu: 100m  

memory: 200Mi  

requests:  

cpu: 100m  

memory: 50Mi  

- name: skydns  

image: docker.gaoxiaobang.com/kubernetes/skydns:2015-10-13-8c72f8c  

resources:  

limits:  

cpu: 100m  

memory: 200Mi  

requests:  

cpu: 100m  

memory: 50Mi  

args:  

- -machines=http://127.0.0.1:4001  

- -addr=0.0.0.0:53  

- -ns-rotate=false  

- -domain=cluster.local.  

ports:  

- containerPort: 53  

name: dns  

protocol: UDP  

- containerPort: 53  

name: dns-tcp  

protocol: TCP  

livenessProbe:  

httpGet:  

path: /healthz  

port: 8080  

scheme: HTTP  

initialDelaySeconds: 60  

timeoutSeconds: 5  

successThreshold: 1  

failureThreshold: 5  

readinessProbe:  

httpGet:  

path: /readiness  

port: 8080  

scheme: HTTP  

initialDelaySeconds: 30  

timeoutSeconds: 5  

- name: healthz  

image: docker.gaoxiaobang.com/kubernetes/exechealthz:1.0  

resources:  

limits:  

cpu: 10m  

memory: 20Mi  

requests:  

cpu: 10m  

memory: 20Mi  

args:  

- -cmd=nslookup kubernetes.default.svc.cluster.local localhost >/dev/null  

- -port=8080  

ports:  

- containerPort: 8080  

protocol: TCP  

volumes:  

- name: etcd-storage  

emptyDir: {}  

dnsPolicy: Default  


dns-rc.yml  注意dns-rc.yml:修改文件中的master ip
  dns service服务yml

  

apiVersion: v1  

kind: Service  

metadata:  

name: kube-dns  

namespace: kube-system  

labels:  

k8s-app: kube-dns  

kubernetes.io/cluster-service: "true"  

kubernetes.io/name: "KubeDNS"  

spec:  

selector:  

k8s-app: kube-dns  

clusterIP:  10.254.254.254  

ports:  

- name: dns  

port: 53  

protocol: UDP  

- name: dns-tcp  

port: 53  

protocol: TCP  


dns-svc.yml  创建namespace(有就不用在创建了)
  kubectl create -f kube-system.yml
  创建ReplicationController
[iyunv@kubernetes-master pods]# kubectl create -f dns-rc.yml

  创建Service
[iyunv@kubernetes-master pods]# kubectl create -f dns-svc.yml

  查看dns-rc.yml文件中定义pod的启动状态,如下则启动成功。
[iyunv@kubernetes-master pods]#  kubectl get pod --namespace=kube-system


  查看dns-svc.yml文件中定义的Service的信息。
[iyunv@kubernetes-master pods]# kubectl get svc -l k8s-app=kube-dns --namespace=kube-system


  测试DNS的效果。
  部署一个busybox的Pod

  

apiVersion: v1  

kind: Pod  

metadata:  

name: busybox  

namespace: default  

spec:  

containers:  

- image: busybox  

command:  

- sleep  

- "3600"  

imagePullPolicy: IfNotPresent  

name: busybox  

restartPolicy: Always  


busybox.yml  验证kubernetes服务的地址解析,出现如下所示则证明DNS解析正常。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431971-1-1.html 上篇帖子: Kubernetes1.6集群上(开启了TLS)安装Dashboard 下篇帖子: [k8s]kube-dns/dashboard排错历险记(含sa加载用法/集群搭建)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表