访问部署在apache mesos代理上的微服务

iyfjxgzm  于 2021-06-26  发布在  Mesos
关注(0)|答案(2)|浏览(238)

客户端如何在不指定host agent ip地址和相关Map端口的情况下访问已部署的微服务。
如果我们添加mesos-dns作为客户端解析程序,我们只能获得代理的ip地址,但它不会返回微服务示例及其相关端口的列表。
假设我们有三个webapp1示例,如下所示:

+---------+---------+
| agent1  | agent2  |
+---------+---------+
|         |         |
| ins1:11 | ins3:13 |
|         |         |
| ins2:12 |         |
|         |         |
+---------+---------+

客户机应该能够直接访问其中一个示例(不需要引用agent1和agent2的ip地址或11、12和13端口号)。例如:

$ lynx webapp1.marathon.mesos
vuktfyat

vuktfyat1#

请检查标题 X-Marathon-App-Id 与马拉松负载平衡器。
例子:

curl -v -H "X-Marathon-App-Id: /your-app-id-in-marahton" -X GET \
  http://marathon-lb.marathon.mesos:9091/yourAppEndPoint

更多信息,请参阅文档。

eh57zj3b

eh57zj3b2#

看看这个答案
当您发出dns srv请求时,dns可以提供有关服务端口的信息。它与大多数客户端不兼容,因此需要手动执行。mesos dns的整个部分都致力于srv记录
以下是文档中的示例:

srv记录

srv记录将服务名称与主机名和ip端口相关联。用于任务 task 由框架发起 framework ,mesos dns为服务名称生成srv记录 _task._protocol.framework.domain ,在哪里 protocoludp 或者 tcp . 例如,其他mesos任务可以发现服务 searchmarathon 带查找的框架 _search._tcp.marathon.mesos :

$ dig _search._tcp.marathon.mesos SRV

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> _search._tcp.marathon.mesos SRV
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33793
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

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

;; ANSWER SECTION:
_search._tcp.marathon.mesos.    60 IN SRV 0 0 31302 10.254.132.41.

mesos dns支持使用任务的discoveryinfo生成srv记录。如果没有可用的discoveryinfo,那么mesos dns将退回到为任务分配的那些“端口”资源。下表说明了控制srv生成的规则:

相关问题