本篇介绍下Consul官方默认启动参数配置介绍。

本地启动hive 本地启动consul_本地启动hive


转载请注明🙂,喜欢请一键三连哦 😊

文章目录

  • 一、官方启动脚本
  • 二、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)格式。

三、参考文档

  1. Consul官方参数配置