📅  最后修改于: 2020-11-01 03:04:23             🧑  作者: Mango
出于演示目的,我们将在开发人员模式下使用-dev模式使用consul代理。仅针对本地计算机设置,我们将进行单个系统领事设置。请不要在生产中使用此单节点领事群集。正如Hashicorp在单节点领事群集的情况下已经提到的那样,数据丢失是不可避免的。
可以通过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 members
输出将如以下屏幕快照所示。
如果您想将其他节点加入该节点-
$ consul join
另外,您可以在节点2和3上运行以下命令-
$ consul join
领事的命令行由几个不同的选项组成,一些最常用的选项如下-
agent-运行Consul代理。
configtest-验证配置文件。
事件-启动一个新事件。
exec-在Consul节点上执行命令。
force-leave-强制集群的成员离开集群。
info-它为我们提供了运算符的调试信息。
join-使Consul代理加入集群。
keygen-生成一个新的加密密钥。
密钥环-管理八卦层加密密钥。
kv-与键值存储交互。
离开-离开Consul集群并毫不费力地将其关闭。
锁-执行命令以按住锁。
maint-控制节点或服务维护模式。
成员-它列出了Consul集群的成员。
monitor-它从Consul代理流式传输日志。
运算符它为Consul运算符提供了一系列工具。
重新加载-触发代理重新加载配置文件。
rtt-它估计节点之间的网络往返时间。
快照-它保存,还原和检查Consul服务器状态的快照。
版本-打印当前的Consul版本。
watch-留意领事的变化。
领事模板为我们提供了一个守护程序,用于查询领事实例并更新文件系统上任意数量的指定模板。当更新过程完成时,领事模板可以选择运行任意命令。此选项可帮助我们设置领事群集,而无需手动完成所有操作。
领事模板将在/ tmp / <文件名> .conf.tmpfl中形成。根据Hashicorp配置语言(HCL)编写模板的语言。
您可以从此页面下载领事模板。
使用以下命令尝试一下-
$ ./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-template \
-template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"
使用上一条命令,该过程已开始。您可以稍后使用以下命令打开另一个终端并查看完全渲染的nginx.conf文件。
$ cat /etc/nginx/conf.d/default.conf
输出将如以下屏幕快照所示。