Kubernetes DNS的配置
Kubernetes集群机制通过DNS进行服务名和ip的映射,如果没有配置dns,你可以通过下面命令查询到集群ip
| kubectl get svc --namespace=kube-system |
得到结果

但Cluster-ip是变化的,如果通过一个create命令一次批量建立一堆具有相互依赖关系的Pod或者RC,就需要配置DNS
配置DNS的方式有几种,我这里试通了最简单的一种SkyDNS的配置.
skydns-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:
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: gcr.io/google_containers/etcd-amd64:2.2.
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
- --domain=cluster.local
- --kube-master-url=http://192.168.0.105:8080
resources:
limits:
cpu: 100m
memory: 200Mi
requests:
cpu: 100m
memory: 50Mi
livenessProbe:
httpGet:
path: /healthz
port:
scheme: HTTP
initialDelaySeconds:
timeoutSeconds:
successThreshold:
failureThreshold:
readinessProbe:
httpGet:
path: /readiness
port:
scheme: HTTP
initialDelaySeconds:
timeoutSeconds:
args:
- --domain=cluster.local
- name: skydns
image: gcr.io/google_containers/skydns:---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:
- -ns-rotate=false
- -domain=cluster.local.
ports:
- containerPort:
name: dns
protocol: UDP
- containerPort:
name: dns-tcp
protocol: TCP
- name: healthz
image: gcr.io/google_containers/exechealthz:1.0
resources:
limits:
cpu: 10m
memory: 20Mi
requests:
cpu: 10m
memory: 20Mi
args:
- -cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null
- -port=
ports:
- containerPort:
protocol: TCP
#volumes:
#- name: etcd-storage
# emptyDir: {}
dnsPolicy: Default
注意这里有个配置是指向你的api server
kube-master-url=http://192.168.0.105:8080
skydns-svc.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:
protocol: UDP
- name: dns-tcp
port:
protocol: TCP
先去minion节点上下载所需要的images
docker pull gcr.io/google_containers/etcd-amd64:2.2.
docker pull gcr.io/google_containers/skydns:---8c72f8c
docker pull gcr.io/google_containers/exechealthz:1.0
然后运行构建
kubectl create -f skydns-rc.yml
kubectl create -f skydns-svc.yml
最后看到Pods处于Running状态

查看日志需要通过-c指定container name
[root@k8s-master skydns]# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
kube-dns-v11-x0vr3 / Running 1d
[root@k8s-master skydns]# kubectl logs kube-dns-v11-x0vr3 -n kube-system
Error from server (BadRequest): a container name must be specified for pod kube-dns-v11-x0vr3, choose one of: [etcd kube2sky skydns healthz]
[root@k8s-master skydns]# kubectl logs kube-dns-v11-x0vr3 -n kube-system -c etcd
-- ::03.899264 I | etcdmain: etcd Version: 2.2.
-- ::03.899305 I | etcdmain: Git SHA: 75f8282
-- ::03.899310 I | etcdmain: Go Version: go1.5.1
-- ::03.899314 I | etcdmain: Go OS/Arch: linux/amd64
-- ::03.899319 I | etcdmain: setting maximum number of CPUs to , total number of available CPUs is
-- ::03.900546 I | etcdmain: listening for peers on http://localhost:2380
-- ::03.900607 I | etcdmain: listening for peers on http://localhost:7001
-- ::03.900626 I | etcdmain: listening for client requests on http://127.0.0.1:2379
-- ::03.900640 I | etcdmain: listening for client requests on http://127.0.0.1:4001
-- ::03.950602 I | etcdserver: name = default
-- ::03.950621 I | etcdserver: data dir = /var/etcd/data
-- ::03.950627 I | etcdserver: member dir = /var/etcd/data/member
-- ::03.950630 I | etcdserver: heartbeat = 100ms
-- ::03.950633 I | etcdserver: election = 1000ms
-- ::03.950637 I | etcdserver: snapshot count =
-- ::03.950649 I | etcdserver: advertise client URLs = http://127.0.0.1:2379,http://127.0.0.1:4001
-- ::03.950655 I | etcdserver: initial advertise peer URLs = http://localhost:2380,http://localhost:7001
-- ::03.950665 I | etcdserver: initial cluster = default=http://localhost:2380,default=http://localhost:7001
-- ::03.984118 I | etcdserver: starting member 6a5871dbdd12c17c in cluster f68652439e3f8f2a
-- ::03.984177 I | raft: 6a5871dbdd12c17c became follower at term
-- ::03.984194 I | raft: newRaft 6a5871dbdd12c17c [peers: [], term: , commit: , applied: , lastindex: , lastterm: ]
-- ::03.984198 I | raft: 6a5871dbdd12c17c became follower at term
-- ::03.984315 I | etcdserver: starting server... [version: 2.2., cluster version: to_be_decided]
-- ::03.997533 N | etcdserver: added local member 6a5871dbdd12c17c [http://localhost:2380 http://localhost:7001] to cluster f68652439e3f8f2a
-- ::04.785143 I | raft: 6a5871dbdd12c17c is starting a new election at term
-- ::04.785217 I | raft: 6a5871dbdd12c17c became candidate at term
-- ::04.785224 I | raft: 6a5871dbdd12c17c received vote from 6a5871dbdd12c17c at term
-- ::04.785245 I | raft: 6a5871dbdd12c17c became leader at term
-- ::04.785253 I | raft: raft.node: 6a5871dbdd12c17c elected leader 6a5871dbdd12c17c at term
-- ::04.785631 I | etcdserver: setting up the initial cluster version to 2.2
-- ::04.785697 I | etcdserver: published {Name:default ClientURLs:[http://127.0.0.1:2379 http://127.0.0.1:4001]} to cluster f68652439e3f8f2a
-- ::04.839450 N | etcdserver: set the initial cluster version to 2.2
[root@k8s-master skydns]#
好,dns配置完成!
Kubernetes DNS的配置的更多相关文章
- Kubernetes DNS安装配置
#镜像在谷歌上需要FQ###################################下载kubernetes#DNS#cd kubernetes/cluster/addons/dns#修改tr ...
- Kubernetes DNS服务配置案例
首先创建DNS服务的RC配置文件skydns-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: kube-dns-v ...
- Kubernetes DNS 简介
环境 $ sudo lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16 ...
- Kubernetes DNS 高阶指南(转发别人 解析很详细)
转发地址:http://www.jintiankansha.me/t/Js1R84GGAl DNS 是 Kubernetes 的核心功能之一,Kubernetes 通过 kube-dns 或 Cor ...
- Kubernetes ServiceAccount的配置
开始配置Kubernetes集群的时候为了少出问题,都是在apiserver配置中去掉ServiceAccount采用非安全连接的方式,但在后面配置FEK日志的过程中,很多时候绕不开这个安全机制,但因 ...
- Linux DNS服务配置
主.从域名服务器配置 一.实验环境 主域名服务器:ns1.topsec.com,192.168.120.119 从域名服务器:ns2.topsec.com,192.168.120.120 二.实验步骤 ...
- Linux系统下DNS主从配置详解
一.DNS概述DNS(Domain Name System),即域名系统.因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串. ...
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课
centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ...
- 基于Bind实现的DNS正反向解析及主从DNS的配置
一.什么是DNS? 1.1 简单的理解,Domain Name System,是互联网一项核心的服务,他作为一个桥梁可以将域名和IP地址相互因素的一个分布式数据库,能够使人更加方便的访问互联网,而不用 ...
随机推荐
- bzoj 1050: [HAOI2006]旅行comf&&【codevs1001】
Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径上最 ...
- [BZOJ1984]月下“毛景树”解题报告|树链剖分
Description 毛毛虫经过及时的变形,最终逃过的一劫,离开了菜妈的菜园. 毛毛虫经过千山万水,历尽千辛万苦,最后来到了小小的绍兴一中的校园里.爬啊爬~爬啊爬~~毛毛虫爬到了一颗小小的“毛景树” ...
- html——零散知识点
1.form表单中的button form表单中,正常应该提交数据的是type="submit" 2. html5的文件读取方法FileReader() 3.inpu ...
- UVALIVE 3939 Plucking fruits
并查集解决.代码跑的有够慢.应该可以通过边权排序优化. #include <map> #include <set> #include <list> #include ...
- react native windows 搭建(完整版)
声明:用windows 搭建的react native只能开发安卓应用 1.准备安装java jdk,以及Android SDK 传送门: java JDK Android SDK(自行寻找) ...
- python中deque类详解
最近在pythonTip做题的时候,遇到了deque类,以前对其不太了解,现在特此总结一下 deque类是python标准库collections模块中的一项,它提供了两端都可以操作的序列,这意味着, ...
- docker从零开始 存储(二)volumes 挂载
使用volumes 卷是保存Docker容器生成和使用的数据的首选机制.mount binds依赖于主机的目录结构,而卷完全由Docker管理.卷绑定安装有几个优点: 与绑定装入相比,卷更易于备份或迁 ...
- POJ 3087 Shuffle'm Up【模拟/map/string】
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14471 Accepted: 6633 Descrip ...
- UVA 10340 All in All(字符串,朴素匹配)
#include <stdio.h> #include <algorithm> #include <cstring> using namespace std; ], ...
- HDU 1856 More is better (并查集)
题意: 给你两个数代表这两个人是朋友,朋友的朋友还是朋友~~,问这些人组成的集合里面人最多的是多少... 思路: 属于并查集了,我用的是带路径压缩的,一个集合里面所有元素(除了根节点)的父节点都是根节 ...