Kubernetes DNS 服务安装配置
2017-07-11 10:33
507 查看
Kubernetes的DNS服务是基于SkyDNS实现的,同时又需要和API Server紧密沟通,它的基本工作方式是通过API Server监视服务创建,一旦有新的服务创建就通知SkyDNS创建一条域名解析记录。沟通API Server和SkyDNS的工作都是由Kube2Sky完成的,Kube2sky和Skydns都需要使用ETCD实现共享配置和服务发现。以下是ETCD的架构图,它清晰地阐明了
Kubernetes实现DNS的方式。
关于Skydns和Kube2sky是在本地安装还是以Pod的方式安装到k8s集群里,笔者在网上看到两种方式都有,但是笔者对本地安装的方式持怀疑态度,主要是涉及到虚拟网络和物理网络的联通性问题,具体地说就是Skydns Server的IP应该kube集群虚拟网络中的某个IP地址,也就是说这个IP需要在kube-apiserver启动参数–service-cluster-ip-range指定的IP地址范围内。而Skydns如果是本地化安装,是无法绑定DNS Server的IP为一个虚拟网络的IP(就是参数-addr的值)。笔者倾向使用镜像方式安装。
安装
文件内容kubernetes-dns.yaml如下:
使用如下命令: kubectl create -f kubernetes-dns.yaml
附件:http://down.51cto.com/data/2366834
Kubernetes实现DNS的方式。
关于Skydns和Kube2sky是在本地安装还是以Pod的方式安装到k8s集群里,笔者在网上看到两种方式都有,但是笔者对本地安装的方式持怀疑态度,主要是涉及到虚拟网络和物理网络的联通性问题,具体地说就是Skydns Server的IP应该kube集群虚拟网络中的某个IP地址,也就是说这个IP需要在kube-apiserver启动参数–service-cluster-ip-range指定的IP地址范围内。而Skydns如果是本地化安装,是无法绑定DNS Server的IP为一个虚拟网络的IP(就是参数-addr的值)。笔者倾向使用镜像方式安装。
安装
文件内容kubernetes-dns.yaml如下:
apiVersion: v1 kind: ReplicationController metadata: name: kube-dns-v6 namespace: default labels: k8s-app: kube-dns version: v6 kubernetes.io/cluster-service: "true" spec: replicas: 1 selector: k8s-app: kube-dns version: v6 template: metadata: labels: k8s-app: kube-dns version: v6 kubernetes.io/cluster-service: "true" spec: containers: - name: etcd image: index.tenxcloud.com/google_containers/etcd-amd64:2.2.1 command: - /bin/etcd - -listen-client-urls - http://0.0.0.0:2379,http://0.0.0.0: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: index.tenxcloud.com/google_containers/kube2sky:1.14 resources: limits: cpu: 100m memory: 50Mi livenssProbe: httpGet: path: /healthz port: 8080 scheme: HTTP initialDelaySeconds: 60 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 readinessProbe: httpGet: path: /readiness port: 8081 scheme: HTTP initalDelaySeconds: 30 timeoutSeconds: 5 args: - --domain=cluster.local - name: skydns image: index.tenxcloud.com/google_containers/skydns:2015-10-13-8c72f8c resources: 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 dnsPolicy: Default - name: healthz image: index.tenxcloud.com/google_containers/exechealthz:1.0 resources: limits: cpu: 100m memory: 50Mi args: - -cmd=nslookup kubernetes.defaults.svc.cluster.local 127.0.0.1 >/dev/null - -port=8080 ports: - containerPort: 8080 protocol: TCP
使用如下命令: kubectl create -f kubernetes-dns.yaml
附件:http://down.51cto.com/data/2366834
相关文章推荐
- Kubernetes DNS服务的安装与配置
- Centos5.4 安装配置DNS服务
- RHEL5下安装配置DNS服务
- kubernetes基础入门之-配置kubernetes skyDNS服务
- Linux DNS服务安装配置
- centos6.5 安装配置DNS服务
- 在CentOS6.2下安装DNS服务软件Bind并快速配置简单实例
- DNS服务安装配置 ZT
- Kubernetes安装配置与服务部署
- Kubernetes安装配置与服务部署
- Kubernetes--学习笔记-2-安装配置和服务部署
- 在ServerCore上安装和配置DNS服务
- DNS服务之bind安装配置与应用
- Windows Server 2003 DNS服务安装配置
- Kubernetes DNS服务配置
- 为DC配置独立DNS服务器之①安装DNS组件服务
- Windows Server 2003 DNS服务安装配置
- RedHat Linux DNS服务安装配置
- DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置
- centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns 第三十节课