首页 > 服务配置 > consul集群的服务注册发现和模板使用
2016
11-29

consul集群的服务注册发现和模板使用

consul经常拿来和etcd和zookeeper来对比,他有和etcd一样的服务发现、服务注册功能,也有和etcd、zookeeper一样的配置存储功能,详细的比对这里就不扯了。用过,就明白了。下面是consul集群的服务注册,服务发现,健康检查,和模板使用

官网:https://www.consul.io/    下载:https://releases.hashicorp.com/consul/

一,consul集群服务建立

vm01  server    10.211.55.4   agent-one
vm02  client     10.211.55.5   agent-two
vm03  client     10.211.55.6   agent-three

如果不想在vm01中每次consul join 各个节点的ip,那么在slave端可以加上-join选项,如:

二,consul的DNS服务发现

三,consul的http api

对consul来说一个重要的接口就是RESTful HTTP API,http api可用于操作nodes, services, checks, configuration等等的CRUD(create, read, update and delete)。详见Consul Http Api,下面只是几个例子?说明

四,consul的图形界面dashboard

consul集群的服务注册发现和模板使用 - 第1张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

consul集群的服务注册发现和模板使用 - 第2张  | linux工匠|关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优|系统架构

五,模板的使用

下面vm01为nginx的proxy,端口为8000,同时vm01,vm02,vm03都作为web service,vm01的8000端口代理vm01,vm02,vm03的80端口。我们所要的结果是其中web server主机异常,会从proxy配置中摘除;当web server正常后会自动添加,完成web server主机的故障和恢复自动化

vm01  server    10.211.55.4   agent-one       proxy/8000       nginx/80
vm02  client     10.211.55.5   agent-two                                nginx/80
vm03  client     10.211.55.6   agent-three                              nginx/80

vm02 和vm03 都一样,放置一个web.json文件
三台主机都重新加载一次consul,保证consul读取此配置

consul的日志:

如果把nginx服务关闭,则报错如下:

consul的DNS服务发现测试:

现在nginx的配置如下:

新建一个模板文件         by:bbotte.com

下载consul-template程序,也可以自己编译

通过模板生成nginx代理配置–web.conf:

我们看看nginx的配置文件,生成了nginx主代理文件

我们已经通过consul对vm01,vm02,vm03的健康检查对主机的80端口做监控,并且在vm01代理这三台主机的80端口,访问localhost:8000可以得到三台主机的访问页面

这次用模板对主机一直做健康检查来测试

通过查看[root@vm01 ~]# cat /usr/local/nginx/conf/server/web.conf 代理的配置,确定是否正确修改了nginx代理的配置
测试过程:把三台机其中一台的nginx服务停止,上面web.conf的主机会自动删除
如果再把nginx服务启动,web.conf的配置会自动添加

上面proxy的配置已经把vm03剔除,启动vm03的nginx服务,会发现proxy配置中server 10.211.55.6:80;自动会添加。由此可以配置web代理自动化:consul发现主机就添加,发现主机异常就剔除。再结合对cpu的检测、请求数的监控,添加或删除主机,完成一套web自动化方案。

更多模板例子参考https://github.com/hashicorp/consul-template/tree/master/examples

以此,consul对服务的健康检查和通过模板更改配置文件已经完成

最后编辑:
作者:bbotte
这个作者貌似有点懒,什么都没有留下。

consul集群的服务注册发现和模板使用》有 2 条评论

  1. Pingback 引用通告: 小议mesos marathon consul的集群试验 | linux工匠 关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优

  2. Pingback 引用通告: linux工匠之mesos marathon consul的集群试验 | linux工匠 关注运维自动化|Python开发|linux高可用集群|数据库维护|性能提优

留下一个回复

你的email不会被公开。