本篇介绍下Consul官方默认启动参数配置介绍。
转载请注明🙂,喜欢请一键三连哦 😊
文章目录
- 一、官方启动脚本
- 二、Consul配置优先级
- 三、参考文档
一、官方启动脚本
首先我们了看下,K8s环境下官方启动脚本:
- /bin/sh
- -ec
- |
CONSUL_FULLNAME="hashicorp-consul"
exec /bin/consul agent \
-advertise="${POD_IP}" \
-bind=0.0.0.0 \
-bootstrap-expect=3 \
-client=0.0.0.0 \
-config-dir=/consul/config \
-datacenter=hashidc1 \
-data-dir=/consul/data \
-domain=consul \
-hcl="connect { enabled = true }" \
-ui \
-retry-join=${CONSUL_FULLNAME}-server-0.${CONSUL_FULLNAME}-server.${NAMESPACE}.svc \
-retry-join=${CONSUL_FULLNAME}-server-1.${CONSUL_FULLNAME}-server.${NAMESPACE}.svc \
-retry-join=${CONSUL_FULLNAME}-server-2.${CONSUL_FULLNAME}-server.${NAMESPACE}.svc \
-server
那这些参数都代表什么意思呢?
- advertise: 广播给集群中得其他节点得地址,bind参数可能无法绑定时,使用此参数。
- bind: 绑定集群通信得地址,这个ip地址应该是就集群内得其他节点可达,可找到得。 默认 0.0.0.0,将绑定机器得所有地址,同时把 ipv4地址告诉集群得其他人。如果指定
[::]
,将广播IPV6地址。 如果存在多个IPV4/IPV6地址,启动则报错。 - domain: 指定交由 Consul 处理的DNS域, 默认consul, 比如执行
xxx.consul
时,由 Consul 进行域名解析。 - node: 节点在集群中的名称。 在集群中一定是唯一的,默认为机器的HostName(主机名)。
- join: 加入Server节点,组成集群,无法加入,将启动失败, 注意集群部署时,推荐使用 retry-join, 将自动重试Join列表,直到成功。
- retry-join: 自动加入存在Server节点,组建数据中心, 如: -retry-join
“consul.domain.internal” -retry-join “10.0.4.67” - bootstrap: 不推荐使用, 是否开启
bootstrap
模式, 如果一个数据中心只有一个节点时, 使用此模式,允许选举自己为
Leader.
bootstrap-expect: Consul将会等到Sever节点数达到指定数值时,才会启动集群(自动选举Leader)。
仅Server有此参数, 注意这个值集群中所有节点要一致, 或着仅指定一个节点。
client: 客户端连接Server的地址,默认127.0.0.1,可绑定多个。
ui: 启用内置 Web UI 和必要的 HTTP路由。
config-file:
指定要加载的配置文件,可多次指定。后面的配置将与前面的配置进行Merge。单个KV将直接代替,列表类型将进行追加。
config-dir: 配置目录,将加载目录中的.hcl
或.json
格式配置。 注意子路径不会加载。
data-dir: Agent存储状态的的数据目录。
dev: Consul开发模式,快速启动一个Consul Agent。 (此模式下, 所以持久化将关闭,适用内存)
此模式适用于开发阶段, 在此模式下Connect也是启用的,此模式不要用于生产级场景。
hcl: 配置片段,可指定多次。
二、Consul配置优先级
Agent各种各样的配置选项,可以通过命令行或者配置文件指定。
配置优先级为 命令行 -> 配置文件
加载配置时,将按照词法顺序从目录中读取配置。 配置格式可以为 HCL
(.hcl) 或 JSON(.json)格式。
三、参考文档