开发手册 欢迎您!
软件开发者资料库

Consul - 安装

Consul安装 - 从简单和简单的步骤学习Consul,从基本到高级概念,包括简介,架构,安装,使用微服务,引导和DNS,查询节点,故障转移事件,使用UI,在AWS上使用Consul。

出于演示目的,我们将使用-dev模式在开发人员模式中使用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

输出将如以下屏幕截图所示.

Memebers

如果你想要将其他节点加入此节点 :

$ consul join  

或者,您可以在节点2和节点上运行以下命令. 3 :

$ consul join 

使用命令行

consul的命令行包含几个不同的选项,一些最常用的选项以下是 :

  • 代理商 : 它运行一个Consul代理.

  • configtest : 验证配置文件.

  • 事件 : 开始新活动.

  • exec : 在Consul节点上执行命令.

  • force-leave : 强制群集成员离开群集.

  • info : 它为我们提供了运营商的调试信息.

  • 加入 : 使Consul代理加入集群.

  • keygen : 生成新的加密密钥.

  • 密钥环 : 管理八卦层加密密钥.

  • kv : 与键值商店互动.

  • 离开 : 离开Consul集群并在没有用力的情况下将其关闭.

  • lock : 执行命令以按住锁定.

  • maint : 控制节点或服务维护模式.

  • 成员 : 它列出了Consul集群的成员.

  • monitor : 它从Consul代理流式传输日志.

  • 运营商 : 它为Consul运营商提供了一系列工具.

  • 重新加载 : 它会触发代理重新加载配置文件.

  • rtt : 它估计节点之间的网络往返时间.

  • 快照 : 它保存,恢复和检查Consul服务器状态的快照.

  • 版本 : 打印当前的Consul版本.

  • 观看 : 注意领事的变化.

领事模板

领事模板提供我们一个守护进程,它查询Consul实例并更新文件系统上任意数量的指定模板.在更新过程完成时,consul-template可以选择运行任意命令.此选项可帮助我们设置consul集群,而无需手动完成所有操作.

consul模板将在/tmp/< name-of-file>形成. .conf.tmpfl 的.根据 Hashicorp配置语言(HCL)编写模板的语言.

您可以从此页面.

Template

使用以下命令尝试出来 :

  $ ./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

输出结果如下图所示.

输出