K8S DNS服务配置如何实现微服务的发布?

参与10

2同行回答

GaryyGaryy系统工程师某保险
配置k8s dnsDNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址。Cluster DNS扩展插件用于支持k8s集群系统中各服务之间发现与调用。组件:  •SkyDNS 提供DNS解析服务  •Etcd 存储DNS信息  •Kube...显示全部

配置k8s dns

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

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

dns service服务yml

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

busybox.yml

收起
保险 · 2018-07-10
浏览3986
nuaaysnuaays技术经理信而富
如访问外部DNS,可以设置external_dns 到configmap实现显示全部

如访问外部DNS,可以设置external_dns 到configmap实现

收起
互联网服务 · 2018-07-11
浏览3725

提问者

wanggeng
系统运维工程师某银行
擅长领域: 服务器存储数据库

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-07-10
  • 关注会员:3 人
  • 问题浏览:5065
  • 最近回答:2018-07-11
  • X社区推广