linkerd实战(6)dtab规则存储到consul

概述
上文我们使用了consul作为服务注册和发现中间件,然后将namerd配置为由consul来进行服务查询。但是路由规则dtab仍然存储在namerd的内存中,每次重启namerd之后都需要通过namerctl来创建规则。接下来我们示例如何将dtab路由规则存储到consul kv中。

Namerd配置
1、修改namerd.yaml配置文件
$ vi config\namerd.yaml
storage:
# storage配置,将inMemory改为consul
# kind: io.l5d.inMemory
kind: io.l5d.consul
#consul host
host: 127.0.0.1
#consul port
port: 8500
#在consul kv中的前缀
pathPrefix: /namerd/dtabs

2、重启namerd服务
$./namerd config/namerd.yaml

3、创建dtab规则,我们可以直接在consul kv中创建,也可以通过namerctl创建
$ ./namerctl dtab create web config/dtab-consul-config --base-url http://127.0.0.1:4180
Created web

4、打开consul 管理页,我们看到规则在consul kv中被创建了
linkerd实战(6)dtab规则存储到consul_第1张图片
我们看到也可以在consul管理页编辑和删除规则。

4、打开namerd管理页,我们看到规则被正确加载了。
linkerd实战(6)dtab规则存储到consul_第2张图片
5、测试访问
$ curl -H "Host:test" http://127.0.0.1:4140
It works!

6、重启namerd,可以看到规则依旧从consul加载。

配置详解
Consul
kind: io.l5d.consul
dtab存储在Consul KV storage。
默认值
说明
host
localhost
consul api 主机名或ip
port
8500
consul api 端口
pathPrefix
/namerd/dtabs
dtab存储的kv前缀
token
no auth
API的认证token
datacenter
uses agent’s datacenter
指定consul的数据中心
readConsistencyMode
default
读模型 Consul API consistency modes  例如 default, stale and consistent
writeConsistencyMode
default
写模型 Consul API consistency modes  例如 default, stale and consistent
failFast
false
如设置 false,禁用failfast,增加Consul Client的错误。在agent模式下设置 false,直接访问高可用集群API设置 true 
backoff
exponential backoff from 1ms to 1min
补偿算法,See  retry backoff
tls
no tls
使用tls链接consul。 see  Consul Encryption  and  TLS .

你可能感兴趣的:(linkerd)