参考文章 https://www.cnblogs.com/sunsky303/p/9209024.html
以下选项全部在命令行中指定。
-
-advertise
- 通告地址用于更改我们通告给集群中其他节点的地址。默认情况下,-bind
地址是通告的。但是,在某些情况下,可能存在无法绑定的可路由地址。这个标志使闲聊不同的地址来支持这一点。如果此地址不可路由,则节点将处于持续振荡状态,因为其他节点会将非可路由性视为故障。在Consul 1.0和更高版本中,这可以设置为 go-sockaddr 模板。 -
-advertise-wan
- 广告WAN地址用于更改我们向通过WAN加入的服务器节点发布的地址。这也可以在与translate_wan_addrs
配置选项结合使用时在客户端代理上设置。默认情况下,-advertise
地址是通告的。但是,在某些情况下,所有数据中心的所有成员都不能位于同一个物理或虚拟网络上,尤其是混合云和专用数据中心的混合设置。该标志使服务器节点能够通过WAN的公共网络闲聊,同时使用专用VLAN来相互闲聊以及彼此的客户端代理,并且如果远程数据中心是远程数据中心,则允许客户端代理在从远程数据中心访问时访问此地址配置translate_wan_addrs
。在Consul 1.0和更高版本中,这可以设置为 go-sockaddr 模板 -
-bootstrap
- 该标志用于控制服务器是否处于“引导”模式。每个数据中心最多只能运行一个服务器,这一点很重要。从技术上讲,一个处于引导模式的服务器可以自我选择为Raft领导者。只有一个节点处于这种模式非常重要; 否则,一致性不能保证,因为多个节点能够自我选择。不建议在引导群集后使用此标志。 -
-bootstrap-expect
- 此标志提供数据中心中预期服务器的数量。不应该提供此值,或者该值必须与群集中的其他服务器一致。提供时,Consul会等待指定数量的服务器可用,然后引导群集。这允许初始领导者自动选举。这不能与遗留-bootstrap
标志结合使用。该标志需要-server
模式。 -
-bind
- 应为内部集群通信绑定的地址。这是集群中所有其他节点都应该可以访问的IP地址。默认情况下,这是“0.0.0.0”,这意味着Consul将绑定到本地计算机上的所有地址,并将 第一个可用的私有IPv4地址通告给群集的其余部分。如果有多个私有IPv4地址可用,Consul将在启动时退出并出现错误。如果你指定“[::]”,领事将 做广告第一个可用的公共IPv6地址。如果有多个公共IPv6地址可用,则Consul将在启动时退出并出现错误。Consul同时使用TCP和UDP以及相同的端口。如果您有任何防火墙,请确保同时允许这两种协议。在Consul 1.0和更高版本中,可以将其设置为要绑定到的空间分隔的地址列表,或者可能会解析为多个地址的 go-sockaddr模板。 -
-serf-wan-bind
- 应该被绑定到Serf WAN八卦通信的地址。默认情况下,该值遵循与-bind
命令行标志相同的规则,如果未指定该值,-bind
则使用该选项。这在Consul 0.7.1及更高版本中可用。在Consul 1.0和更高版本中,这可以设置为 go-sockaddr 模板 -
-serf-lan-bind
- Serf LAN八卦通信应该绑定的地址。这是群集中所有其他LAN节点应可访问的IP地址。默认情况下,该值遵循与-bind
命令行标志相同的规则,如果未指定该值,-bind
则使用该选项。这在Consul 0.7.1及更高版本中可用。在Consul 1.0和更高版本中,这可以设置为 go-sockaddr模板 -
-client
- Consul将绑定客户端接口的地址,包括HTTP和DNS服务器。默认情况下,这是“127.0.0.1”,只允许回送连接。在Consul 1.0和更高版本中,可以将其设置为要绑定到的空间分隔的地址列表,或者 可能会解析为多个地址的 go-sockaddr模板。 -
-config-file
- 要加载的配置文件。有关此文件格式的更多信息,请阅读配置文件部分。该选项可以多次指定以加载多个配置文件。如果指定了多次,稍后加载的配置文件将与先前加载的配置文件合并。在配置合并期间,单值键(string,int,bool)将简单地将它们的值替换,而列表类型将被附加在一起。 -
-config-dir
- 要加载的配置文件的目录。Consul将加载后缀为“.json”的所有文件。加载顺序是按字母顺序排列的,并使用与上述config-file
选项相同的合并例程 。可以多次指定此选项以加载多个目录。不加载config目录的子目录。有关配置文件格式的更多信息,请参阅 配置文件部分。 -
-config-format
- 要加载的配置文件的格式。通常,Consul会从“.json”或“.hcl”扩展名检测配置文件的格式。将此选项设置为“json”或“hcl”强制Consul解释任何带或不带扩展名的文件,以该格式解释。 -
-data-dir
- 此标志为代理存储状态提供了一个数据目录。这对所有代理都是必需的。该目录在重新启动时应该是持久的。这对于在服务器模式下运行的代理尤其重要,因为它们必须能够保持群集状态。此外,该目录必须支持使用文件系统锁定,这意味着某些类型的已装入文件夹(例如VirtualBox共享文件夹)可能不合适。注意:服务器和非服务器代理都可以在此目录中的状态下存储ACL令牌,因此读取访问权限可以授予对服务器上的任何令牌的访问权限,并允许访问非服务器上的服务注册期间使用的任何令牌。在基于Unix的平台上,这些文件使用0600权限编写,因此您应确保只有受信任的进程可以与Consul一样的用户身份执行。在Windows上,您应确保该目录具有适当的权限配置,因为这些权限将被继承。 -
-datacenter
- 此标志控制运行代理程序的数据中心。如果未提供,则默认为“dc1”。Consul对多个数据中心拥有一流的支持,但它依赖于正确的配置。同一个数据中心内的节点应该位于单个局域网中。 -
-dev
- 启用开发服务器模式。这对于在关闭所有持久性选项的情况下快速启动Consul代理非常有用,从而启用可用于快速原型开发或针对API进行开发的内存服务器。此模式不适合生产使用,因为它不会将任何数据写入磁盘。 -
-disable-host-node-id
- 将此设置为true将阻止Consul使用来自主机的信息生成确定性节点标识,并将生成随机节点标识,该标识将保留在数据目录中。在同一台主机上运行多个Consul代理进行测试时,这非常有用。Consul在版本0.8.5和0.8.5之前缺省为false,因此您必须选择加入基于主机的ID。基于主机的ID是使用https://github.com/shirou/gopsutil/tree/master/host生成的,与HashiCorp的Nomad共享 ,因此如果您选择加入基于主机的ID,则Consul和Nomad将使用信息在主机上在两个系统中自动分配相同的ID。 -
-disable-keyring-file
- 如果设置,密钥环不会被保存到文件中。任何已安装的密钥在关机时将丢失,只有在给定的-encrypt
密钥在启动时可用。这默认为false。 -
-dns-port
- 侦听的DNS端口。这将覆盖默认端口8600.这在Consul 0.7和更高版本中可用。 -
-domain
- 默认情况下,Consul响应“consul”中的DNS查询。域。该标志可用于更改该域。该域中的所有查询都假定由Consul处理,不会递归解决。 -
-enable-script-checks
这将控制是否在此代理上启用执行脚本的运行状况检查,并且默认为false
运营商必须选择允许这些脚本。如果启用,建议启用ACL以控制允许哪些用户注册新的检查以执行脚本。这是在Consul 0.9.0中添加的。 -
-encrypt
- 指定用于加密Consul网络流量的密钥。该密钥必须是Base64编码的16字节。创建加密密钥的最简单方法是使用consul keygen
。群集中的所有节点必须共享相同的加密密钥才能进行通信。提供的密钥会自动保留到数据目录并在代理程序重新启动时自动加载。这意味着为了加密Consul的闲话协议,这个选项只需要在每个代理的初始启动序列中提供一次。如果Consul在使用加密密钥初始化后提供,则忽略提供的密钥并显示警告。 -
-hcl
- HCL配置片段。此HCL配置片段将附加到配置中,并允许在命令行上指定配置文件的全部选项。该选项可以多次指定。这是在Consul 1.0中添加的。 -
-http-port
- 要监听的HTTP API端口。这覆盖了默认端口8500.当将Consul部署到通过环境传递HTTP端口的环境时,此选项非常有用,例如像CloudFoundry这样的PaaS,允许您通过Procfile直接设置端口。 -
-join
- 启动时加入的另一位代理的地址。这可以指定多次以指定多个代理加入。如果Consul无法加入任何指定的地址,代理启动将失败。默认情况下,代理在启动时不会加入任何节点。请注意,retry_join
在自动执行Consul集群部署时,使用 可能更适合帮助缓解节点启动竞争条件。在Consul 1.1.0和更高版本中,这可以设置为 go-sockaddr 模板
-
-retry-join
- 类似于-join
第一次尝试失败时允许重试连接。这对于知道地址最终可用的情况很有用。该列表可以包含IPv4,IPv6或DNS地址。在Consul 1.1.0和更高版本中,这可以设置为 go-sockaddr 模板。如果Consul正在非默认的Serf LAN端口上运行,则必须指定。IPv6必须使用“括号”语法。如果给出多个值,则按照列出的顺序尝试并重试它们,直到第一个成功为止。这里有些例子:# Using a DNS entry $ consul agent -retry-join "consul.domain.internal"
# Using IPv4 $ consul agent -retry-join "10.0.4.67"
# Using IPv6 $ consul agent -retry-join "[::1]:8301"
»云端自动加入
从Consul 0.9.1开始,
retry-join
使用go-discover库接受使用云元数据进行自动集群加入的统一接口 。有关更多信息,请参阅云端自动加入页面。# Using Cloud Auto-Joining $ consul agent -retry-join "provider=aws tag_key=..."
-
-retry-interval
- 加入尝试之间的等待时间。默认为30秒。 -
-retry-max
--join
在退出代码1之前尝试执行的最大尝试次数。默认情况下,它设置为0,将其解释为无限次重试。 -
-join-wan
- 启动时加入的另一个WAN代理的地址。可以指定多次以指定要加入的多个WAN代理。如果Consul无法加入任何指定的地址,代理启动将失败。默认情况下,代理-join-wan
启动时不会有任何节点。在Consul 1.1.0和更高版本中,这可以设置为 go-sockaddr 模板。
-
-retry-join-wan
- 与retry-join
第一次尝试失败时允许重试wan连接类似。这对于我们知道地址最终可用的情况很有用。截至领事0.9.3 云支持自动加入。在Consul 1.1.0和更高版本中,这可以设置为 go-sockaddr 模板
-
-retry-interval-wan
- 两次-join-wan
尝试之间的等待时间。默认为30秒。 -
-retry-max-wan
--join-wan
在退出代码1之前尝试执行的最大尝试次数。默认情况下,它设置为0,将其解释为无限次重试。 -
-log-level
- Consul代理启动后显示的日志级别。这默认为“信息”。可用的日志级别是“跟踪”,“调试”,“信息”,“警告”和“错误”。您始终可以通过consul monitor
并使用任何日志级别连接到代理。另外,日志级别可以在配置重载期间更改。 -
-node
- 集群中此节点的名称。这在集群内必须是唯一的。默认情况下,这是机器的主机名。 -
-node-id
- 在Consul 0.7.3及更高版本中可用,即使节点或地址的名称发生更改,该节点仍然是该节点的唯一标识符。这必须采用十六进制字符串的形式,长度为36个字符,例如adf4238a-882b-9ddc-4a9d-5b6758e4159e
。如果未提供(最常见的情况),那么代理将在启动时生成一个标识符,并将其保存在数据目录中, 以便在代理重新启动时保持相同。如果可能,主机的信息将用于生成确定性节点ID,除非-disable-host-node-id
设置为true。 -
-node-meta
- 在Consul 0.7.3及更高版本中可用,这指定了一个任意的元数据键/值对,与表单的节点相关联key:value
。这可以指定多次。节点元数据对具有以下限制:- 每个节点最多可注册64个键/值对。
- 元数据密钥的长度必须介于1到128个字符(含)之间
- 元数据键只能包含字母数字
-
,和_
字符。 - 元数据密钥不能以
consul-
前缀开头; 这是保留供内部使用的领事。 - 元数据值的长度必须介于0到512(含)之间。
- 开头的密钥的元数据值
rfc1035-
在DNS TXT请求中逐字编码,否则元数据kv对将根据RFC1464进行编码。
-
-pid-file
- 此标志为代理存储其PID提供文件路径。这对发送信号很有用(例如,SIGINT
关闭代理或SIGHUP
更新检查确定 -
-protocol
- 要使用的Consul协议版本。这默认为最新版本。这应该只在升级时设置。您可以通过运行查看Consul支持的协议版本consul -v
。 -
-raft-protocol
- 它控制用于服务器通信的内部版本的Raft一致性协议。必须将其设置为3才能访问自动驾驶仪功能,但不包括cleanup_dead_servers
。Consul 1.0.0及更高版本默认为3(以前默认为2)。有关 详细信息,请参阅 Raft协议版本兼容性。 -
-raft-snapshot-threshold
- 这将控制保存到磁盘的快照之间的最小数量的木筏提交条目。这是一个很少需要更改的低级参数。遇到磁盘IO过多的非常繁忙的群集可能会增加此值以减少磁盘IO,并最大限度地减少所有服务器同时进行快照的机会。由于日志会变得更大并且raft.db文件中的空间直到下一个快照才能被回收,所以增加这一点会使磁盘空间与磁盘IO之间的交易关闭。如果由于需要重播更多日志而导致服务器崩溃或故障切换时间延长,服务器可能需要更长时间才能恢复。在Consul 1.1.0和更高版本中,这个默认值为16384,在之前的版本中它被设置为8192。 -
-raft-snapshot-interval
- 控制服务器检查是否需要将快照保存到磁盘的频率。他是一个很少需要改变的低级参数。遇到磁盘IO过多的非常繁忙的群集可能会增加此值以减少磁盘IO,并最大限度地减少所有服务器同时进行快照的机会。由于日志会变得更大并且raft.db文件中的空间直到下一个快照才能被回收,所以增加这一点会使磁盘空间与磁盘IO之间的交易关闭。如果由于需要重播更多日志而导致服务器崩溃或故障切换时间延长,服务器可能需要更长时间才能恢复。在Consul 1.1.0及更高版本中,这个默认设置为30s
,并且在之前的版本中设置为5s
。 -
-recursor
- 指定上游DNS服务器的地址。该选项可以提供多次,功能上与recursors
配置选项等效。 -
-rejoin
- 提供时,领事将忽略先前的休假,并在开始时尝试重新加入集群。默认情况下,Consul将休假视为永久意图,并且在启动时不会再尝试加入集群。该标志允许先前的状态用于重新加入群集。 -
-segment
- (仅限企业)此标志用于设置代理所属网段的名称。代理只能加入其网段内的其他代理并与其通信。有关更多详细信息,请参阅网络细分指南。默认情况下,这是一个空字符串,它是默认的网段。 -
-server
- 此标志用于控制代理是否处于服务器或客户端模式。提供时,代理将充当领事服务器。每个Consul集群必须至少有一个服务器,理想情况下每个数据中心不超过5个。所有服务器都参与Raft一致性算法,以确保事务以一致的,可线性化的方式进行。事务修改所有服务器节点上维护的集群状态,以确保节点发生故障时的可用性。服务器节点还参与其他数据中心中服务器节点的WAN八卦池。服务器充当其他数据中心的网关,并根据需要转发流量。 -
-non-voting-server
- (仅限企业)此标志用于使服务器不参与Raft仲裁,并使其仅接收数据复制流。在需要大量读取服务器的情况下,这可用于将读取可伸缩性添加到群集。 -
-syslog
- 该标志启用记录到系统日志。这仅在Linux和OSX上受支持。如果在Windows上提供,将会导致错误。 -
-ui
- 启用内置的Web UI服务器和所需的HTTP路由。这消除了将Consul Web UI文件与二进制文件分开维护的需要。 -
-ui-dir
- 此标志提供包含Consul的Web UI资源的目录。这将自动启用Web UI。目录必须对代理可读。从Consul版本0.7.0及更高版本开始,Web UI资产包含在二进制文件中,因此不再需要此标志; 仅指定-ui
标志就足以启用Web UI。指定'-ui'和'-ui-dir'标志将导致错误。