Consul教程

Consul 安装

出于演示目的,我们将使用-dev 模式在开发者模式下使用 consul 代理。仅对于本地机器设置,我们将进行单个系统 consul 设置。 请不要在您的生产中使用这个单节点 consul 集群。正如Hashicorp在单节点consul集群的情况下已经提到的那样, 数据丢失是不可避免的

安装Consul

Consul 可以通过 www.consul.io/downloads 的下载页面安装。 html
安装Consul
您可以在机器的"下载"部分提取二进制包。
$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/
现在让我们使用 -dev 标志开始使用 consul。
$ consul agent-dev-data-dir=/tmp/consul
输出将如以下屏幕截图所示。
开发标志
现在您可以使用以下命令检查您的Consul成员。
$ consul members
输出将如以下屏幕截图所示。
Memebers
如果你想加入其他节点到这个节点-
$ 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 -与键值存储交互。 leave-离开 Consul 集群并强制关闭它。 lock-执行一个命令来按住一个锁。 maint-控制节点或服务维护模式。 members-它列出了 Consul 集群的成员。 monitor-它从 Consul 代理流式传输日志。 operator-它为我们提供了一组用于 Consul 操作员的工具。 reload-它触发代理重新加载配置文件。 rtt-估计节点之间的网络往返时间。 snapshot-它保存、恢复和检查 Consul 服务器状态的快照。 version-打印当前的 Consul 版本。 watch-注意Consul的变化。

Consul模板

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
输出将如以下屏幕截图所示。
nginx
配置文件可能看起来像-
{{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
输出将如以下屏幕截图所示。
输出
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4