DC/OS的mesos-dns服务发现

Mesos-dns是 mesos 服务发现工具,能查找appIp,端口号以及master,leader等信息。在Apache Mesos 集群中,允许应用程序和服务通过域名系统(DNS)来相互定位。Mesos-DNS 充当的角色和在互联网中DNS 的作用差不多。Mesos-DNS 的特点是轻量、无状态,易于部署和维护。


Mesos-DNS 将每个集群中正在运行的应用程序的域名转换成IP 地址和端口号。这使得任何链接到集群中运行的服务都可以通过DNS 进行查找。Mesos-DNS 被设计成简单并且无状态的,它不需要共识机制,永久储存以及日志。因为Mesos-DNS 没有实现心跳,状态监测,或者管理应用程序的生命周期。这些功能在Mesos master,slaves,frameworks 中实现。


Frameworks 运行在Mesos 中,不需要直接与Mesos-DNS 通信。Mesos-DNS 定期查询Mesos master(s),检索所有运行的框架中正在运行的任务的状态,并为这些任务生成DNS 记录,包括A 记录与SRV记录。当Mesos 集群中的任务开始,结束,或重启, Mesos-DNS 都需要更新DNS 记录以保证为最新状态。需要解释的A.B.C 即为taks.framework.domain 这样的命名规则,例如,当mesos 使用marathon 框架执行2048任务,这样就可以知道其域名,即为:2048.marathon.mesos。


SOA记录。除了task.framework.domain 记录,Mesos-DNS 通常还会产生一个A记录task.framework.slave.domain,即为task 执行的slave 节点的ip。例如,2048.marathon.slave.mesos 的A 记录将运行marathon 框架的2048应用的slave 节点的ip。


SRV记录。服务器资源记录为某一服务分配一个hostname 和一个ip port,对于在域A 中,当框架B 启动任务C,这样Mesos-DNS 将产生一个SRV 记录名为_C._tcp.B.A,命名规则为_taskname._protocol.framework.domain,其中protocol 可以为udp 或者tcp,例如mesos 使用marathon 启动的任务2048


我在DC/OS的Marathon中部署二个应用,如2048和tomcat。如下所示部署了一个2048的app,其以网桥形式把容器内部的80端口映射成动态端口,而且在2个host中共启动了4个部署实例:


再如下所示,部署了一个tomcat的app,其以网桥形式把容器内部的8080端口映射成动态端口,而且在2个host中共启动了3个部署实例:


由于在安装DC/OS后,已经在master上安装好了mesos-dns服务。因此65和66节点,以及任何master几点上都可以查询到appIp,端口号以及master,leader等信息

1) 首先查看2048应用的运行所在ip:

[root@agent-01 ~]# dig 2048.marathon.mesos

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> 2048.marathon.mesos
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47800
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;2048.marathon.mesos.		IN	A

;; ANSWER SECTION:
2048.marathon.mesos.	60	IN	A	192.168.15.66
2048.marathon.mesos.	60	IN	A	192.168.15.65

;; Query time: 3 msec
;; SERVER: 198.51.100.1#53(198.51.100.1)
;; WHEN: Thu Jul 14 20:32:06 EDT 2016
;; MSG SIZE  rcvd: 69

[root@agent-01 ~]# 

如果用简短形式:

[root@agent-01 ~]# dig 2048.marathon.mesos +short
192.168.15.65
192.168.15.66
[root@agent-01 ~]#

查看tomcat应用的运行所在ip:

[root@agent-01 ~]# dig tomcat.marathon.mesos

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> tomcat.marathon.mesos
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3108
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;tomcat.marathon.mesos.		IN	A

;; ANSWER SECTION:
tomcat.marathon.mesos.	60	IN	A	192.168.15.65

;; Query time: 3 msec
;; SERVER: 198.51.100.1#53(198.51.100.1)
;; WHEN: Thu Jul 14 20:38:03 EDT 2016
;; MSG SIZE  rcvd: 55

[root@agent-01 ~]# dig tomcat.marathon.mesos +short
192.168.15.65
[root@agent-01 ~]#

2) 查看2048应用的运行所在端口号及master

[root@agent-01 ~]# dig SRV _2048._tcp.marathon.mesos

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> SRV _2048._tcp.marathon.mesos
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28333
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 4

;; QUESTION SECTION:
;_2048._tcp.marathon.mesos.	IN	SRV

;; ANSWER SECTION:
_2048._tcp.marathon.mesos. 60	IN	SRV	0 0 10525 2048-6w861-s3.marathon.mesos.
_2048._tcp.marathon.mesos. 60	IN	SRV	0 0 19257 2048-n5wi7-s3.marathon.mesos.
_2048._tcp.marathon.mesos. 60	IN	SRV	0 0 13976 2048-9sn1t-s8.marathon.mesos.
_2048._tcp.marathon.mesos. 60	IN	SRV	0 0 10086 2048-z97jw-s3.marathon.mesos.

;; ADDITIONAL SECTION:
2048-z97jw-s3.marathon.mesos. 60 IN	A	192.168.15.65
2048-6w861-s3.marathon.mesos. 60 IN	A	192.168.15.65
2048-9sn1t-s8.marathon.mesos. 60 IN	A	192.168.15.66
2048-n5wi7-s3.marathon.mesos. 60 IN	A	192.168.15.65

;; Query time: 5 msec
;; SERVER: 198.51.100.1#53(198.51.100.1)
;; WHEN: Thu Jul 14 20:39:58 EDT 2016
;; MSG SIZE  rcvd: 355

[root@agent-01 ~]# dig SRV _2048._tcp.marathon.mesos +short
0 0 13976 2048-9sn1t-s8.marathon.mesos.
0 0 10086 2048-z97jw-s3.marathon.mesos.
0 0 19257 2048-n5wi7-s3.marathon.mesos.
0 0 10525 2048-6w861-s3.marathon.mesos.
[root@agent-01 ~]#
查看tomcat应用的运行所在 端口号及master

[root@agent-01 ~]# dig SRV _tomcat._tcp.marathon.mesos

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> SRV _tomcat._tcp.marathon.mesos
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64583
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3

;; QUESTION SECTION:
;_tomcat._tcp.marathon.mesos.	IN	SRV

;; ANSWER SECTION:
_tomcat._tcp.marathon.mesos. 60	IN	SRV	0 0 23649 tomcat-petwd-s3.marathon.mesos.
_tomcat._tcp.marathon.mesos. 60	IN	SRV	0 0 11376 tomcat-7xaza-s3.marathon.mesos.
_tomcat._tcp.marathon.mesos. 60	IN	SRV	0 0 5008 tomcat-jffrj-s3.marathon.mesos.

;; ADDITIONAL SECTION:
tomcat-7xaza-s3.marathon.mesos.	60 IN	A	192.168.15.65
tomcat-petwd-s3.marathon.mesos.	60 IN	A	192.168.15.65
tomcat-jffrj-s3.marathon.mesos.	60 IN	A	192.168.15.65

;; Query time: 3 msec
;; SERVER: 198.51.100.1#53(198.51.100.1)
;; WHEN: Thu Jul 14 20:41:56 EDT 2016
;; MSG SIZE  rcvd: 291

[root@agent-01 ~]# dig SRV _tomcat._tcp.marathon.mesos +short
0 0 23649 tomcat-petwd-s3.marathon.mesos.
0 0 5008 tomcat-jffrj-s3.marathon.mesos.
0 0 11376 tomcat-7xaza-s3.marathon.mesos.
[root@agent-01 ~]#
3)2048无论哪个host+port的形式访问,都能正常的访问其端口服务


~


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值