硬件环境:

两台虚拟机,

10.10.20.203 部署docker、etcd、flannel、kube-apiserver、kube-controller-manager、kube-scheduler

10.10.20.206 部署docker、flannel、kubelet、kube-proxy

软件环境:

kubernetes:1.3.3

DNS-etcd:index.tenxcloud.com/google_containers/etcd:2.2.5

kube2sky:index.tenxcloud.com/google_containers/kube2sky:1.15

skyDNS:index.tenxcloud.com/google_containers/skydns:2015-10-13-8c72f8c

1、创建dns-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
name: dns-rc-test
labels:
k8s-app: dns
version: v8
kubernetes.io/cluster-service: "true"
spec:
replicas:
selector:
k8s-app: dns
version: v8
kubernetes.io/cluster-service: "true"
template:
metadata:
labels:
k8s-app: dns
version: v8
kubernetes.io/cluster-service: "true"
spec:
containers:
- name: etcd
image: 10.10.20.202/library/etcd:2.2.
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: 10.10.20.202/library/kube2sky:1.15
args:
- --kube-master_url=http://10.10.20.203:8080 #改换实际的master地址
- --domain=cluster.local
- name: skydns
image: 10.10.20.202/library/skydns:--
args:
- -machines=http://127.0.0.1:4001
- -addr=0.0.0.0:
- -domain=cluster.local
ports:
- containerPort:
name: dns-udp
protocol: UDP
- containerPort:
name: dns-tcp
protocol: TCP
volumes:
- name: etcd-storage
emptyDir: {}
dnsPolicy: Default

2、创建dns-service.yaml

apiVersion: v1
kind: Service
metadata:
name: dns-svc-test
labels:
k8s-app: dns
kubernetes.io/cluster-service: "true"
kubernetes.io/name: "DNStest"
spec:
selector:
k8s-app: dns
clusterIP: 10.254.159.10 #在service-cluster-ip-range范围取一个值
ports:
- name: dns-udp
port:
protocol: UDP
- name: dns-tcp
port:
protocol: TCP

3、部署dns

kubectl create -f /root/k8s/dns/dns-rc.yaml
kubectl create -f /root/k8s/dns/dns-service.yaml

4、在kubelet的启动脚本中增加cluster-dns=10.254.159.10和cluster-domain=cluster.local,如下,并重启kubelet。

kubelet \
--logtostderr=true --v= \
--address=0.0.0.0 \
--api-servers=http://10.10.20.203:8080 \
--pod-infra-container-image=index.tenxcloud.com/google_containers/pause-amd64:3.0 \
--cluster-dns=10.254.159.10 \
--cluster-domain=cluster.local \
>> /var/log/kubelet.log >& &

5、进入一个pod中执行域名解析和telnet指令,验证域名是否可用

[root@k8s-master bin]# kubectl get service
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dns-svc-test 10.254.159.10 <none> /UDP,/TCP 4d
emp-authc-service 10.254.64.191 <nodes> /TCP 40m
emp-portal-service 10.254.20.196 <nodes> /TCP 39m
kubernetes 10.254.0.1 <none> /TCP 10d
postgresql-service 10.254.161.247 <nodes> /TCP 2h
redis-service 10.254.160.1 <nodes> /TCP 1h
zookeeper-service 10.254.229.137 <nodes> /TCP 2h
[root@k8s-master bin]# kubectl exec centos-master-fy8r4 -i -t -- bash -il
[root@centos-master-fy8r4 /]# nslookup postgresql-service
Server: 10.254.159.10
Address: 10.254.159.10# Name: postgresql-service.default.svc.cluster.local
Address: 10.254.161.247 [root@centos-master-fy8r4 /]# telnet postgresql-service
Trying 10.254.161.247...
Connected to postgresql-service.
Escape character is '^]'.

k8s部署dns的更多相关文章

  1. Prometheus K8S部署

    Prometheus K8S部署 部署方式:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus ...

  2. dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启

    kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/pkg/dns/dns.go:150: Failed to list *v1.Service: Get https:// ...

  3. (转)dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启

    转:https://blog.csdn.net/shida_csdn/article/details/80028905 kubernetes(k8s)DNS 服务反复重启解决: k8s.io/dns/ ...

  4. Kubernetes集群部署DNS插件

    准备 kube-dns 相关镜像 准备 kube-dns 相关 yaml 文件 系统预定义的 RoleBinding 配置 kube-dns 相关服务 检查 kube-dns 功能 kube-dns ...

  5. k8s之DNS服务器搭建

    一.导读 在使用k8s部署springboot+redis简单应用这篇文章中,spring boot连接redis是直接使用的IP连接,那么可不可以直接使用服务名称进行连接呢?答案是可以的,这就是k8 ...

  6. 从K8S部署示例进一步理解容器化编排技术的强大

    概念 Kubernetes,也称为K8s,生产级别的容器编排系统,是一个用于自动化部署.扩展和管理容器化应用程序的开源系统.K8s是一个go语言开发,docker也是go语言开发,可见go语言的是未来 ...

  7. Linux 自动化部署DNS服务器

    Linux 自动化部署DNS服务器 1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加 ...

  8. linux系统下部署DNS正向解析

    DNS服务概述: DNS(Domain Name System)域名系统,能够提供域名与IP地址的解析服务. 正向解析 正向解析是指域名到IP 地址的解析过程. 部署DNS正向解析 DNS服务的三个配 ...

  9. Python服务Dokcer化并k8s部署实例

    这篇文章记录了我试验将一个基于python的服务docker化并k8s部署的过程. 服务介绍Docker化设计业务代码改造创建docker镜像K8S部署设计yaml文件运行服务介绍这是一个用 pyth ...

随机推荐

  1. H-Index II -- LeetCode

    Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...

  2. 【bzoj3173】【Tjoi2013】【最长上升子序列】treap+dp二分优化

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=61560361 向大(hei)佬(e)实力学(di ...

  3. 【bzoj1085】【 [SCOI2005]骑士精神】启发式剪枝+迭代加深搜索

    (上不了p站我要死了,侵权度娘背锅) 如果这就是启发式搜索的话,那启发式搜索也不是什么高级玩意嘛..(啪啪打脸) Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且 ...

  4. Linux下进行Web服务器压力(并发)测试工具http_load、webbench、ab、Siege、autobench简单使用教程(转)

    一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的进程运行,一般 ...

  5. 更改vsftpd默认的21端口

    vsftpd默认的端口是21 我想更改为别的端口 那么首先编辑 vsftpd的配置文件 /etc/vsftpd/vsftpd.conf 添加监听端口 listen_port **** 然后修改ftp的 ...

  6. easyui combogrid 按需加载,点击下拉加载

    功能优点:减少不必要的http请求,减少服务器查询压力,降低额外的浏览器渲染,提高呈现速度开发分享: combogrid 点击才请求的功能实现简要:我分析了费用系统,和现在全网的写法.并不满意.都是要 ...

  7. microsoft-sql-server release-notes

    https://docs.microsoft.com/en-us/sql/release-notes/microsoft-sql-server

  8. Winform打砖块游戏制作step by step第一节---主界面搭建

    一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---主界面搭建 1.主界面截图 2. 该窗体主要包含了以下 ...

  9. Multithreading and Grand Central Dispatch on iOS for Beginners Tutorial

    Have you ever written an app where you tried to do something, and there was a long pause while the U ...

  10. iis7文件夹 首页设置

    iis7在默认文档中可以设置首页,一般可以直接设置网站根目录下的页面为首页,但是当页面不在根目录下时,直接按路径添加就不行了,如“admin/default.aspx”.添加完后只有“default. ...