Flask 领事和领事 DNS
问题:Flask 领事和领事 DNS 我正在尝试学习玩烧瓶和领事。 这是我的 /etc/consul.d/consul.json { "data_dir": "/opt/consul/data", "server": true, "bind_addr": "0.0.0.0", "bootstrap_expect": 1, "ui": true, "domain ": "bino.inc", "cl
问题:Flask 领事和领事 DNS
我正在尝试学习玩烧瓶和领事。
这是我的 /etc/consul.d/consul.json
{ "data_dir": "/opt/consul/data", "server": true, "bind_addr": "0.0.0.0", "bootstrap_expect": 1, "ui": true, "domain ": "bino.inc", "client_addr": "0.0.0.0", "node_name": "node01" }
使用 /usr/bin/consul 代理 -config-diru003d/etc/consul.d/ 运行
用 dig @127.0.0.1 -p 8600 node01.node.bino.inc 测试并得到 ;;答案部分:node01.node.bino.inc。 0 在 192.168.1.5
我只是从https://github.com/vsudilov/flask-consulate中复制一个示例,对其进行一些小改动:
# Register Consul service:
consul.register_service(
address='127.0.0.1',
name='webapp',
interval='10s',
tags=['master', ],
port=5000,
httpcheck='http://localhost:5000/healthcheck'
)
consul.app.run(端口u003d5000,线程u003d假,调试u003d真)
看起来领事和烧瓶脚本相互交流。烧瓶调试得到:
127.0.0.1 - - [2018 年 11 月 15 日 08:38:27] “GET /healthcheck HTTP/1.1” 200 -
我的问题是 consul 将生成的烧瓶脚本的 FQDN 吗?
我试过了
你@127.0.0.1 -p 8600 webapp.bino.inc
,并且领事调试说:
2018/11/15 08:41:29 [WARN] dns:QName 无效:webapp.
试过了
你@127.0.0.1 -p 8600 webserver.bino.inc
,领事调试说:
2018/11/15 08:43:37 [WARN] dns:QName 无效:网络服务器。
真诚的-比诺-
解答
通过 DNS 接口查询在 Consul 中注册的服务需要服务 FQDN 的特定结构,如此链接中所述用于标准查找(Conusl DNS 标准查找)
在 Consul 注册的服务的 FQDN 必须采用以下格式:
<service>.service[.datacenter].<domain>
其中<service>
是您在 Consul 注册的服务的名称,在您的情况下为webapp
或webserver
。<domain>
是您的consul.json
中定义的领事域。[datacenter]
是可选的,Consul 服务器会返回其所属数据中心的服务。由于您尚未在consul.json
中定义它,因此它是dc1
。
所以你的dig
查询应该是这样的:
dig @127.0.0.1 -p 8600 webapp.service.bino.inc
或者
dig @127.0.0.1 -p 8600 webserver.service.bino.inc
或者,您可以尝试将数据中心添加到 FQDN。您的dig
查询应如下所示,并且在运行单个 DC 单节点 Consul 集群时应返回与上述相同的响应:
dig @127.0.0.1 -p 8600 webserver.service.dc1.bino.inc
我希望这有助于解决您的问题。
更多推荐
所有评论(0)