烧瓶领事和领事DNS

问题描述 投票:1回答:1

我正在努力学习与烧瓶和领事一起玩。

这是我的/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 agent -config-dir = / etc / consul.d /

用dig @ 127.0.0.1 -p 8600 node01.node.bino.inc测试并得到;;答案部分:node01.node.bino.inc。 0 IN A 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(port = 5000,threaded = False,debug = True)

看起来像领事和烧瓶脚本相互沟通。烧瓶调试得到:

127.0.0.1 - - [15 / Nov / 2018 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 [警告] dns:QName无效:webapp。

试过

你@ 127.0.0.1 -p 8600 webserver.bino.inc

,领事调试说:

2018/11/15 08:43:37 [警告] dns:QName无效:网络服务器。

真诚的-bino-

python flask consul
1个回答
1
投票

通过DNS接口查询Consul中的注册服务需要服务FQDN的特定结构,如此链接中所述的标准查找(qazxsw poi)

在Consul注册的服务的FQDN必须采用以下形式:

Conusl DNS stadard lookup

其中<service>.service[.datacenter].<domain> 是您在Consul注册的服务的名称,在您的情况下<service>webappwebserver是你的<domain>中定义的consul域。 consul.json是可选的,Consul服务器将返回它所属的数据中心的服务。既然你没有在[datacenter]中定义它,那就是consul.json

所以你的dc1查询应该如下所示:

dig

要么

dig @127.0.0.1 -p 8600  webapp.service.bino.inc

您可以尝试将数据中心添加到FQDN。您的dig @127.0.0.1 -p 8600 webserver.service.bino.inc 查询应如下所示,并且在运行单个DC单节点Consul集群时应返回与上述相同的响应:

dig

我希望这有助于解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.