consul-template + nginx部署高可用负载均衡

https://www.cnblogs.com/duanxz/p/9734597.html

https://juejin.im/post/5b2a6bc351882574cf66a211

consul-template + nginx部署高可用负载均衡

一、Consul-Template简介

Consul-Template是基于Consul的自动替换配置文件的应用。在Consul-Template没出现之前,大家构建服务发现系统大多采用的是Zookeeper、Etcd+Confd这样类似的系统。

Consul官方推出了自己的模板系统Consul-Template后,动态的配置系统可以分化为Etcd+Confd和Consul+Consul-Template两大阵营。Consul-Template的定位和Confd差不多,Confd的后端可以是Etcd或者Consul。

Consul-Template提供了一个便捷的方式从Consul中获取存储的值,Consul-Template守护进程会查询Consul实例来更新系统上指定的任何模板。当更新完成后,模板还可以选择运行一些任意的命令。

Consul-Template的使用场景

Consul-Template可以查询Consul中的服务目录、Key、Key-values等。这种强大的抽象功能和查询语言模板可以使Consul-Template特别适合动态的创建配置文件。例如:创建Apache/Nginx Proxy Balancers、Haproxy Backends、Varnish Servers、Application Configurations等。

Consul-Template特性

  • Quiescence:Consul-Template内置静止平衡功能,可以智能的发现Consul实例中的更改信息。这个功能可以防止频繁的更新模板而引起系统的波动。
  • Dry Mode:不确定当前架构的状态,担心模板的变化会破坏子系统?无须担心。因为Consul-Template还有Dry模式。在Dry模式,Consul-Template会将结果呈现在STDOUT,所以操作员可以检查输出是否正常,以决定更换模板是否安全。
  • CLI and Config:Consul-Template同时支持命令行和配置文件。
  • Verbose Debugging:即使每件事你都做的近乎完美,但是有时候还是会有失败发生。Consul-Template可以提供更详细的Debug日志信息。

项目地址:https://github.com/hashicorp/consul-template

二、Consul-Template安装

Consul-Template和Consul一样,也是用Golang实现。因此具有天然可移植性(支持 Linux、windows 和macOS)。安装包仅包含一个可执行文件。Consul-Template安装非常简单,只需要下载对应系统的软件包并解压后就可使用。
只需要下载可执行文件:https://releases.hashicorp.com/consul-template/
将执行文件解压放到/usr/local/bin/下即可,如下:

我下载的是:consul-template_0.20.0_linux_amd64.tgz

复制代码

[root@localhost consul-template]# tar -xvf consul-template_0.20.0_linux_amd64.tgz 
consul-template
[root@localhost consul-template]# ll
总用量 12696
-rwxr-xr-x. 1  501 games 9451232 2月  20 08:39 consul-template
-rw-r--r--. 1 root root  3543379 3月  22 09:57 consul-template_0.20.0_linux_amd64.tgz
[root@localhost consul-template]# cd consul-template
-bash: cd: consul-template: 不是目录
[root@localhost consul-template]# cp consul-template /usr/local/bin
[root@localhost consul-template]# consul-template -v 
consul-template v0.20.0 (b709612c)
[root@localhost consul-template]#

复制代码

三、Consul-Template使用帮助

查看帮助

执行consul-template -h即可看到consul-temple的使用参数

  -auth=      设置基本的认证用户名和密码
  -consul=
设置Consul实例的地址 -max-stale= 查询过期的最大频率,默认是1s -dedup 启用重复数据删除,当许多consul template实例渲染一个模板的时候可以降低consul的负载 -ssl 使用https连接Consul使用SSL -ssl-verify 通过SSL连接的时候检查证书 -ssl-cert SSL客户端证书发送给服务器 -ssl-key 客户端认证时使用的SSL/TLS私钥 -ssl-ca-cert 验证服务器的CA证书列表 -token= 设置Consul API的token -syslog 把标准输出和标准错误重定向到syslog,syslog的默认级别是local0。 -syslog-facility= 设置syslog级别,默认是local0,必须和-syslog配合使用 -template=