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:

[root@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空间。

[root@kubernetes-master pods]# cat kube-system.yml

apiVersion: v1

kind: Namespace

metadata:

name: kube-system

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

1 apiVersion: v12 kind: ReplicationController3 metadata:4 name: kube-dns-v115 namespace: kube-system6 labels:7 k8s-app: kube-dns8 version: v119 kubernetes.io/cluster-service: "true"10 spec:11 replicas: 112 selector:13 k8s-app: kube-dns14 version: v1115 template:16 metadata:17 labels:18 k8s-app: kube-dns19 version: v1120 kubernetes.io/cluster-service: "true"21 spec:22 containers:23 - name: etcd24 image: docker.gaoxiaobang.com/kubernetes/etcd-amd64:2.2.125 resources:26 limits:27 cpu: 100m28 memory: 500Mi29 requests:30 cpu: 100m31 memory: 50Mi32 command:33 - /usr/local/bin/etcd34 - -data-dir35 - /var/etcd/data36 - -listen-client-urls37 - http://127.0.0.1:2379,http://127.0.0.1:400138 - -advertise-client-urls39 - http://127.0.0.1:2379,http://127.0.0.1:400140 - -initial-cluster-token41 - skydns-etcd42 #volumeMounts:43 #- name: etcd-storage44 # mountPath: /var/etcd/data45 - name: kube2sky46 image: docker.gaoxiaobang.com/kubernetes/kube2sky:1.1447 args:48 # command = "/kube2sky"49 - --domain=cluster.local50 - --kube-master-url=http://10.64.8.68:808051 resources:52 limits:53 cpu: 100m54 memory: 200Mi55 requests:56 cpu: 100m57 memory: 50Mi58 - name: skydns59 image: docker.gaoxiaobang.com/kubernetes/skydns:2015-10-13-8c72f8c60 resources:61 limits:62 cpu: 100m63 memory: 200Mi64 requests:65 cpu: 100m66 memory: 50Mi67 args:68 - -machines=http://127.0.0.1:400169 - -addr=0.0.0.0:5370 - -ns-rotate=false71 - -domain=cluster.local.72 ports:73 - containerPort: 5374 name: dns75 protocol: UDP76 - containerPort: 5377 name: dns-tcp78 protocol: TCP79 livenessProbe:80 httpGet:81 path: /healthz82 port: 808083 scheme: HTTP84 initialDelaySeconds: 6085 timeoutSeconds: 586 successThreshold: 187 failureThreshold: 588 readinessProbe:89 httpGet:90 path: /readiness91 port: 808092 scheme: HTTP93 initialDelaySeconds: 3094 timeoutSeconds: 595 - name: healthz96 image: docker.gaoxiaobang.com/kubernetes/exechealthz:1.097 resources:98 limits:99 cpu: 10m100 memory: 20Mi101 requests:102 cpu: 10m103 memory: 20Mi104 args:105 - -cmd=nslookup kubernetes.default.svc.cluster.local localhost >/dev/null106 - -port=8080107 ports:108 - containerPort: 8080109 protocol: TCP110 volumes:111 - name: etcd-storage112 emptyDir: {}113 dnsPolicy: Default

dns-rc.yml

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

dns service服务yml

1 apiVersion: v12 kind: Service3 metadata:4 name: kube-dns5 namespace: kube-system6 labels:7 k8s-app: kube-dns8 kubernetes.io/cluster-service: "true"9 kubernetes.io/name: "KubeDNS"10 spec:11 selector:12 k8s-app: kube-dns13 clusterIP: 10.254.254.25414 ports:15 - name: dns16 port: 5317 protocol: UDP18 - name: dns-tcp19 port: 5320 protocol: TCP

dns-svc.yml

创建namespace(有就不用在创建了)

kubectl create -f kube-system.yml

创建ReplicationController

[root@kubernetes-master pods]# kubectl create -f dns-rc.yml

创建Service

[root@kubernetes-master pods]# kubectl create -f dns-svc.yml

查看dns-rc.yml文件中定义pod的启动状态,如下则启动成功。

[root@kubernetes-master pods]#  kubectl get pod --namespace=kube-system

查看dns-svc.yml文件中定义的Service的信息。

[root@kubernetes-master pods]# kubectl get svc -l k8s-app=kube-dns --namespace=kube-system

测试DNS的效果。

部署一个busybox的Pod

1 apiVersion: v12 kind: Pod3 metadata:4 name: busybox5 namespace: default6 spec:7 containers:8 - image: busybox9 command:10 - sleep11 - "3600"12 imagePullPolicy: IfNotPresent13 name: busybox14 restartPolicy: Always

busybox.yml

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

k8s 自定义dns_配置k8s dns相关推荐

  1. 【为K8s的coredns配置上游DNS服务器】

    为K8s的coredns配置上游DNS服务器 一.背景描述 二.如何修改coredns达到目的 三.修改coredns 解析指定域名走指定dns ①.get coredns configmap ②.修 ...

  2. k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问问题

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 验证一个域名的ip地址可以使用 nslookup xx.xx..xx 在kubernets中不同命名空间的服务相互访问 涉及到的是Pod和Servic ...

  3. centos7 Kubeadm安装配置K8S 及Dashboard外部服务

    环境: Kubernetes Master节点:192.168.0.47 Kubernetes node1节点:192.168.0.33 Kubernetes node2节点:192.168.0.37 ...

  4. jenkins使用自定义方式结合k8s实现ci/cd-后端实战

    前情交代: 在开发环境已经打好了镜像包,并且次镜像包在test环境已经测试通过,现在开发生产环境实现流水线的k8s部署 k8s 应部署完毕,环境ok jenkins部署完毕 工作重点在jenkins的 ...

  5. k8s自定义controller三部曲之一:创建CRD(Custom Resource Definition)

    k8s系统中controller扮演着重要角色,开发自定义controller是深入学习和理解controller的有效途径,<k8s自定义controller三部曲>系列会逐步完成一次完 ...

  6. 二进制搭建kubernetes多master集群【三、配置k8s master及高可用】

    前面两篇文章已经配置好了etcd和flannel的网络,现在开始配置k8s master集群. etcd集群配置参考:二进制搭建kubernetes多master集群[一.使用TLS证书搭建etcd集 ...

  7. k8s:koolshare软路由安装及k8s基本环境配置

    前期准备 安装方案 二进制源码包的安装方式,每一个组件都是一个进程,并且这些进程都没有自愈功能,死亡了得手动启动.优点就是对k8s的每个组件比较熟悉. 目前市面上叫得出口的安装方式都是基于k8s官方提 ...

  8. CentOS 7 安装配置 k8s 1.25.3

    控制面板 node 节点 主机名 k8s node-1 IP 192.168.80.60 192.168.80.16 安装 vim sudo yum -y install vim 安装 wget su ...

  9. k8s自定义controller三部曲之三:编写controller代码

    本文是<k8s自定义controller三部曲>的终篇,前面的章节中,我们创建了CRD,再通过自动生成代码的工具将controller所需的informer.client等依赖全部准备好, ...

  10. k8s自定义controller三部曲之二:自动生成代码

    本文是<k8s自定义controller三部曲>的第二篇,上一篇我们在k8s环境注册了API对象Student,此时如果创建Student对象就会在etcd保存该对象信息: 三部曲所有文章 ...

最新文章

  1. Ajax Toolkit日历控件CalendarExtender求教!
  2. 初中生问题:求任意凸多边形的交叉面积
  3. 视频造假_如何发现“深造假”面部切换视频
  4. 侵犯软件著作权罪量刑标准
  5. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xbd in position 198: illegal multibyte sequence
  6. 【转】Android中Dalvik(DVM)的详解
  7. tensorflow两种padding方式
  8. 协程学习一:nty协程的设计原理及效率分析
  9. 《虚幻4引擎快速入门》视频教程
  10. erp5,一套基于python和gpl协议,功能和界面完全模仿sap r3的大型开源制造业erp系统
  11. python大数据运维常用脚本_python大数据运维
  12. MPI和OpenMP混合编程计算pi π值
  13. 惠化洞(或双门洞)[혜화동 (혹은 쌍문동)]——朴宝蓝[박보람]
  14. html5 css3思维导图,手把手整理CSS3知识汇总【思维导图】
  15. python连接两个list
  16. ROB 第一篇 DFS BFS (寻迹算法)
  17. 哈工大近世代数期末复习
  18. Sothink SWF Decompiler 4
  19. 病毒木马查杀实战第015篇:U盘病毒之脱壳研究
  20. 神医“大数据” 甘做幕后英雄

热门文章

  1. Python 的RS485 串口通讯
  2. rs485串口转网口设置
  3. 省市县三级联动的实现方案
  4. CDA level 1 业务分析师 之 业务分析部分PART 5 多维数据透视分析(10%)
  5. CGI和FastCgi
  6. FFmpeg代码实现视频转jpg图片
  7. android 监听连续点击,android基础之点击监听器的2种监听实现
  8. ASP.net如何优雅地获取屏幕高度及宽度(通过JS)
  9. Axure RP 9.0 中继器增删改查实现[原型图]
  10. 现代城市生态与环境学