一、下载镜像
[root@k8s_master ~]# docker pull ist0ne/kubedns-amd64
[root@k8s_master ~]# docker pull ist0ne/k8s-dns-dnsmasq-amd64
[root@k8s_master ~]# docker pull ist0ne/dnsmasq-metrics-amd64
[root@k8s_master ~]# docker pull ist0ne/exechealthz-amd64

二、下载配置文件
通过https://rawgit.com这个地址加速下载,下载为skydns-rc.yaml和skydns-svc.yaml文件名

wget https://rawgit.com/kubernetes/kubernetes/release-1.5/cluster/addons/dns/skydns-rc.yaml.sed -O skydns-rc.yaml
wget https://rawgit.com/kubernetes/kubernetes/release-1.5/cluster/addons/dns/skydns-svc.yaml.sed -O skydns-svc.yaml

三、修改配置文件:
修改skydns-rc.yaml,其中images修改成,步骤一已下载的镜像,domain修改

apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: kube-dnsnamespace: kube-systemlabels:k8s-app: kube-dnskubernetes.io/cluster-service: "true"
spec:#指定副本数replicas: 1# replicas: not specified here:# 1. In order to make Addon Manager do not reconcile this replicas parameter.# 2. Default is 1.# 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.strategy:rollingUpdate:maxSurge: 10%maxUnavailable: 0selector:matchLabels:k8s-app: kube-dnstemplate:metadata:labels:k8s-app: kube-dnsannotations:scheduler.alpha.kubernetes.io/critical-pod: ''scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'spec:containers:- name: kubednsimage: docker.io/ist0ne/kubedns-amd64:latestresources:# TODO: Set memory limits when we've profiled the container for large# clusters, then set request = limit to keep this container in# guaranteed class. Currently, this container falls into the# "burstable" category so the kubelet doesn't backoff from restarting it.limits:memory: 170Mirequests:cpu: 100mmemory: 70MilivenessProbe:httpGet:path: /healthz-kubednsport: 8080scheme: HTTPinitialDelaySeconds: 60timeoutSeconds: 5successThreshold: 1failureThreshold: 5readinessProbe:httpGet:path: /readinessport: 8081scheme: HTTP# we poll on pod startup for the Kubernetes master service and# only setup the /readiness HTTP server once that's available.initialDelaySeconds: 3timeoutSeconds: 5args:#指定一级域名- --domain=huangzai.com.- --dns-port=10053- --config-map=kube-dns#增加kube-master-url,指向k8s_master地址- --kube-master-url=http://192.168.3.216:8080# This should be set to v=2 only after the new image (cut from 1.5) has# been released, otherwise we will flood the logs.- --v=0env:- name: PROMETHEUS_PORTvalue: "10055"ports:- containerPort: 10053name: dns-localprotocol: UDP- containerPort: 10053name: dns-tcp-localprotocol: TCP- containerPort: 10055name: metricsprotocol: TCP- name: dnsmasqimage: docker.io/ist0ne/k8s-dns-dnsmasq-amd64:latestlivenessProbe:httpGet:path: /healthz-dnsmasqport: 8080scheme: HTTPinitialDelaySeconds: 60timeoutSeconds: 5successThreshold: 1failureThreshold: 5args:- --cache-size=1000- --no-resolv- --server=127.0.0.1#10053#注释掉#- --log-facility=-ports:- containerPort: 53name: dnsprotocol: UDP- containerPort: 53name: dns-tcpprotocol: TCP# see: https://github.com/kubernetes/kubernetes/issues/29055 for detailsresources:requests:cpu: 150mmemory: 10Mi- name: dnsmasq-metricsimage: docker.io/ist0ne/dnsmasq-metrics-amd64:latestlivenessProbe:httpGet:path: /metricsport: 10054scheme: HTTPinitialDelaySeconds: 60timeoutSeconds: 5successThreshold: 1failureThreshold: 5args:- --v=2- --logtostderrports:- containerPort: 10054name: metricsprotocol: TCPresources:requests:memory: 10Mi- name: healthzimage: docker.io/ist0ne/exechealthz-amd64:latestresources:limits:memory: 50Mirequests:cpu: 10m# Note that this container shouldn't really need 50Mi of memory. The# limits are set higher than expected pending investigation on #29688.# The extra memory was stolen from the kubedns container to keep the# net memory requested by the pod constant.memory: 50Miargs:- --cmd=nslookup kubernetes.default.svc.huangzai.com 127.0.0.1 >/dev/null- --url=/healthz-dnsmasq- --cmd=nslookup kubernetes.default.svc.huangzai.com 127.0.0.1:10053 >/dev/null- --url=/healthz-kubedns- --port=8080- --quietports:- containerPort: 8080protocol: TCPdnsPolicy: Default  # Don't use cluster DNS.

修改skydns-svc.yaml,指定clusterIP,可任意。Node各pod的dns地址都会指向该DNS地址

apiVersion: v1
kind: Service
metadata:name: kube-dnsnamespace: kube-systemlabels:k8s-app: kube-dnskubernetes.io/cluster-service: "true"kubernetes.io/name: "KubeDNS"
spec:selector:k8s-app: kube-dnsclusterIP: 10.254.0.100ports:- name: dnsport: 53protocol: UDP- name: dns-tcpport: 53protocol: TCP

四、启动DNS
[root@k8s_master ~]# kubectl create -f skydns-rc.yaml
deployment "kube-dns" created
[root@k8s_master ~]# kubectl create -f skydns-svc.yaml
service "kube-dns" created

五、修改Node上的 /etc/kubernetes/kubelet配置,增加如下内容
[root@k8s_client1 ~]# vim /etc/kubernetes/kubelet

KUBELET_ARGS="--cluster_dns=10.254.0.100 --cluster_domain=huangzai.com"

六、重启kubelet服务
[root@k8s_client1 ~]# systemctl restart kubelet

七、增加一个pod用于测试:
[root@k8s_master yaml]# vim busybox.yaml

apiVersion: v1
kind: Pod
metadata:labels:name: busyboxrole: mastername: busybox
spec:containers:- name: busyboximage: docker.io/busybox:latestcommand:- sleep- "3600"

[root@k8s_master yaml]# kubectl create -f busybox.yaml
pod "busybox" created

八、进入容器,容器内部执行域名解析命令。
[root@k8s_master yaml]# kubectl exec -it busybox sh
/ # nslookup kubernetes

Server:    10.254.0.100
Address 1: 10.254.0.100 kube-dns.kube-system.svc.huangzai.comName:      kubernetes
Address 1: 10.254.0.1 kubernetes.default.svc.huangzai.com

正常解析,kubedns部署成功

转载于:https://blog.51cto.com/jonauil/2087312

kubernetes 配置kubedns相关推荐

  1. kubernetes之kubedns部署

    一,理解Kubedns原理 通俗理解,首先明白k8s dns是为服务的发现而生,即service的发现,为了能够让其它服务能够直接通过service 名字找到它们,于是就需要dns将service名转 ...

  2. kubernetes之kubedns部署(kubedns,dnsmasq,exechealthz)以及dns-autoscaler部署

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 一,理解Kubedns原理 通俗理解,首先明白k8s dns是为服务的发现而生,即service的发现,为了能够让其它服务能够直接通过service ...

  3. CC00042.CloudKubernetes——|KuberNetes二进制部署.V20|5台Server|——|kubernetes配置|生产环境关键性配置|

    一.生产环境关键性配置 ### --- docker参数配置--所有节点 ~~~ docker参数:所有节点都需要更改.[root@k8s-master01 ~]# vim /etc/docker/d ...

  4. Kubernetes 配置私有镜像仓库时,没有权限访问的问题

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  5. 如何在 Kubernetes 上配置 Jenkins?

    作者 | Sudip Sengupta 译者 | 火火酱,责编 | Carol 封图 | CSDN 下载自视觉中国 在本文中,我们将一起完成在Kubernetes上配置Jenkins的工作.作为一款被 ...

  6. kubernetes安装配置

    kubernetes是google公司基于docker所做的一个分布式集群,有以下主件组成 etcd: 高可用存储共享配置和服务发现,作为与minion机器上的flannel配套使用,作用是使每台 m ...

  7. kubernetes集群配置Cgroups驱动

    Cgroups概念 cgroups 的全称是 Linux Control Groups,主要作用是限制.记录和隔离进程组(process groups)使用的物理资源(cpu.memory.IO 等) ...

  8. TalkingData的Spark On Kubernetes实践

    众所周知,Spark是一个快速.通用的大规模数据处理平台,和Hadoop的MapReduce计算框架类似.但是相对于MapReduce,Spark凭借其可伸缩.基于内存计算等特点,以及可以直接读写Ha ...

  9. Kubernetes部署记录

    Kubernetes(1.8.1)部署记录 1.环境说明 服务器规划: IP Hostname Role 192.168.119.180 k8s-0.etcd-1 Master.etcd.NFSSer ...

最新文章

  1. unity 游戏第一次安装完之后运行,切出来,点击桌面图标后黑屏问题
  2. JS事件流和事件委托
  3. c语言程序的命令行输入,C程序获取命令行参数
  4. Android adb.exe程序启动不起来,如何处理
  5. SAP Spartacus user role页面的checkbox设计明细介绍
  6. 使用Python连接数据库的脚本
  7. xml 属性value换行显示_跟光磊学Java开发-Java解析XML
  8. 折半插入排序C/C++
  9. Android ListView 代码1
  10. 汇编语言程序设计基础知识
  11. android textview setellipsize,android中给TextView设置属性ellipsize
  12. 极域电子教室学生端全屏广播的破解及编程处理(附静态库)
  13. 程序员的奋斗史(三十六)——人在囧途之应聘篇(六)——第一季终结篇
  14. 最新安卓JAVA模拟器_安卓java模拟器完美版下载-安卓java模拟器直装最新版下载v1.4.6 - 欧普软件园...
  15. Windows的快捷方式、符号链接、目录联接、硬链接的区别
  16. 教程篇(7.0) 05. FortiGate基础架构 IPsec安全隧道 ❀ Fortinet 网络安全专家 NSE 4
  17. 怕你不信,100行极简原生html现实3D雪花飘飘动效
  18. 动作捕捉在各大领域的应用效果展示
  19. 用Python给图片加水印
  20. POI之图片导出到PPT简单实例

热门文章

  1. SQLServer 扫盲
  2. 《Essential C++》读书笔记 之 泛型编程风格
  3. 升级python2.6.6到python2.7导致pip命令不可用
  4. bzoj3545 Peaks
  5. 《SolidWorks 2017中文版机械设计从入门到精通)》——1.4 操作环境设置
  6. 4.Ext JS Ext.data.Store本地过滤
  7. 分布式内存数据库 Geode
  8. WSGI和PASTE
  9. 页面 table 可编辑的实现
  10. Redis与Memcached简要比较