- Consul Tutorial
- Consul - Home
- Consul - Introduction
- Consul - Architecture
- Consul - Installation
- Consul - Working with Microservices
- Consul - Bootstrapping & DNS
- Consul - Querying Nodes
- Consul - Failover Events
- Consul - Using UI
- Consul - Using Consul on AWS
- Consul Useful Resources
- Consul - Quick Guide
- Consul - Useful Resources
- Consul - Discussion
领事 - 安装
出于演示目的,我们将使用 -dev 模式在开发人员模式下使用 consul 代理。仅对于本地计算机设置,我们将进行单个系统 consul 设置。请不要在您的生产中使用这个单节点 consul 集群。正如Hashicorp已经提到的,在单节点consul集群的案例场景中,数据丢失是不可避免的。
安装领事
Consul 可以通过下载页面安装:www.consul.io/downloads.html
您可以在计算机的“下载”部分中提取二进制包。
$ cd Downloads $ chmod +x consul $ sudo mv consul /usr/bin/
现在让我们开始使用-dev 标志来使用 consul 。
$ consul agent -dev -data-dir=/tmp/consul
输出将如以下屏幕截图所示。
现在您可以使用以下命令检查您的领事成员。
$ consul members
输出将如以下屏幕截图所示。
如果您想将其他节点加入到该节点 -
$ consul join <Node 2> <Node 3>
或者,您可以在节点 2 和 3 上运行以下命令 -
$ consul join <Node 1>
使用命令行
consul 的命令行由几个不同的选项组成,一些最常用的选项如下 -
agent - 运行 Consul 代理。
configtest - 验证配置文件。
event - 启动一个新事件。
exec - 在 Consul 节点上执行命令。
force-leave - 强制集群的成员离开集群。
info - 它为我们提供了操作员的调试信息。
join - 使 Consul 代理加入集群。
keygen - 生成新的加密密钥。
keyring - 管理八卦层加密密钥。
kv - 与键值存储交互。
left - 离开 Consul 集群并不强制关闭它。
lock - 执行命令以保持锁定。
maint - 控制节点或服务维护模式。
成员- 它列出了 Consul 集群的成员。
监视器- 它从 Consul 代理流式传输日志。
运算符- 它为我们提供了一系列用于 Consul 运算符的工具。
reload - 它触发代理重新加载配置文件。
rtt - 它估计节点之间的网络往返时间。
快照- 它保存、恢复和检查 Consul 服务器状态的快照。
version - 打印当前Consul版本。
watch - 留意领事的变化。
领事模板
consul-template 为我们提供了一个守护进程,用于查询 Consul 实例并更新文件系统上任意数量的指定模板。当更新过程完成时,consul-template 可以选择运行任意命令。此选项帮助我们设置 consul 集群,而无需自己手动完成所有操作。
consul 模板将在/tmp/<name-of-file>.conf.tmpfl中形成。根据Hashicorp 配置语言(HCL)编写模板的语言。
您可以从此页面下载 consul 模板。
使用以下命令尝试一下 -
$ ./consul-template -h
输出将如以下屏幕截图所示。
如果您希望将此二进制文件移动到更显眼的位置,以便用户每次都可以使用它。您可以输入以下命令 -
$ chmod +x consul-template $ sudo mv consul-template /usr/share/bin/
出于演示目的,我们将使用nginx的示例配置作为我们的服务。您可以在https://github.com/hashicorp/consul-template/tree/master/examples尝试更多演示,或者更好地写下您自己的模板。
$ vim /tmp/nginx.conf.ctmpl
输出将如以下屏幕截图所示。
配置文件可能看起来像 -
{{range services}} {{$name := .Name}} {{$service := service .Name}} upstream {{$name}} { zone upstream-{{$name}} 64k; {{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60 weight = 1; {{else}}server 127.0.0.1:65535; # force a 502{{end}} } {{end}} server { listen 80 default_server; location / { root /usr/share/nginx/html/; index index.html; } location /stub_status { stub_status; } {{range services}} {{$name := .Name}} location /{{$name}} { proxy_pass http://{{$name}}; } {{end}} }
现在使用 consul 模板二进制文件,请运行以下命令 -
$ consul-template \ -template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
通过前面的命令,该过程已开始。您稍后可以打开另一个终端并使用以下命令查看完全呈现的 nginx.conf 文件。
$ cat /etc/nginx/conf.d/default.conf
输出将如以下屏幕截图所示。