- docker 环境准备好
2 下载最新的consul镜像
docker pull consul
[root@localhost cloud]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/consul latest 5c88a9c787af 2 weeks ago 52.22 MB
3.启动consul的一个容器实例
docker run -d --name consul --restart=always --net=host node-1:5000/consul
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
-p 8600:53/udp \
agent -server -bind=10.11.3.56 -node=server -bootstrap-expect 1 -client 0.0.0.0 -ui
4.参数说明:
–name: 容器名称
-bind : 指的是宿 主机的ip地址,即consul安装的系统的ip
-node : 指定节点名称
常用命令command:
agent
作用:运行一个consul agent
join
作用:将agent加入到consul cluster
members
作用:列出consul cluster集群中的members
常用选项option:
-data-dir
作用:指定agent储存状态的数据目录
这是所有agent都必须的
对于server尤其重要,因为他们必须持久化集群的状态
-config-dir
作用:指定service的配置文件和检查定义所在的位置
通常会指定为”某一个路径/consul.d”(通常情况下,.d表示一系列配置文件存放的目录)
-config-file
作用:指定一个要装载的配置文件
该选项可以配置多次,进而配置多个配置文件(后边的会合并前边的,相同的值覆盖)
-dev
作用:创建一个开发环境下的server节点
该参数配置下,不会有任何持久化操作,即不会有任何数据写入到磁盘
这种模式不能用于生产环境(因为第二条)
-bootstrap-expect
作用:该命令通知consul server我们现在准备加入的server节点个数,该参数是为了延迟日志复制的启动直到我们指定数量的server节点成功的加入后启动。
-node
作用:指定节点在集群中的名称
该名称在集群中必须是唯一的(默认采用机器的host)
推荐:直接采用机器的IP
-bind
作用:指明节点的IP地址
-server
作用:指定节点为server
每个数据中心(DC)的server数推荐为3或5(理想的是,最多不要超过5)
所有的server都采用raft一致性算法来确保事务的一致性和线性化,事务修改了集群的状态,且集群的状态保存在每一台server上保证可用性
server也是与其他DC交互的门面(gateway)
-client
作用:指定节点为client
若不指定为-server,其实就是-client
-join
作用:将节点加入到集群
-domain
-dc