# 启动Consul
安装配置好Consul以后,我们可以通过简单的命令启动consul。先来看最简单的启动方式:
consul agent -dev
1
在新终端中,执行如上操作。
hongweiyu@localhost:~$ consul agent -dev
==> Starting Consul agent...
==> Consul agent running!
Version: 'v1.5.1'
Node ID: '808644da-c526-efa2-4f37-fff96168dcd1'
Node name: 'localhost'
Datacenter: 'dc1' (Segment: '')
Server: true (Bootstrap: false)
Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: 8502, DNS: 8600)
Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false
==> Log data will now stream in as it occurs:
2019/06/17 15:36:18 [DEBUG] agent: Using random ID "808644da-c526-efa2-4f37-fff96168dcd1" as node ID
2019/06/17 15:36:18 [DEBUG] tlsutil: Update with version 1
2019/06/17 15:36:18 [DEBUG] tlsutil: OutgoingRPCWrapper with version 1
2019/06/17 15:36:18 [DEBUG] tlsutil: IncomingRPCConfig with version 1
2019/06/17 15:36:18 [DEBUG] tlsutil: OutgoingRPCWrapper with version 1
2019/06/17 15:36:18 [INFO] raft: Initial configuration (index=1): [{Suffrage:Voter ID:808644da-c526-efa2-4f37-fff96168dcd1 Address:127.0.0.1:8300}]
2019/06/17 15:36:18 [INFO] raft: Node at 127.0.0.1:8300 [Follower] entering Follower state (Leader: "")
2019/06/17 15:36:18 [INFO] serf: EventMemberJoin: localhost.dc1 127.0.0.1
2019/06/17 15:36:18 [INFO] serf: EventMemberJoin: localhost 127.0.0.1
2019/06/17 15:36:18 [INFO] consul: Handled member-join event for server "localhost.dc1" in area "wan"
2019/06/17 15:36:18 [INFO] consul: Adding LAN server localhost (Addr: tcp/127.0.0.1:8300) (DC: dc1)
2019/06/17 15:36:18 [DEBUG] agent/proxy: managed Connect proxy manager started
2019/06/17 15:36:18 [INFO] agent: Started DNS server 127.0.0.1:8600 (tcp)
2019/06/17 15:36:18 [INFO] agent: Started DNS server 127.0.0.1:8600 (udp)
2019/06/17 15:36:18 [INFO] agent: Started HTTP server on 127.0.0.1:8500 (tcp)
2019/06/17 15:36:18 [INFO] agent: started state syncer
2019/06/17 15:36:18 [INFO] agent: Started gRPC server on 127.0.0.1:8502 (tcp)
2019/06/17 15:36:18 [WARN] raft: Heartbeat timeout from "" reached, starting election
2019/06/17 15:36:18 [INFO] raft: Node at 127.0.0.1:8300 [Candidate] entering Candidate state in term 2
2019/06/17 15:36:18 [DEBUG] raft: Votes needed: 1
2019/06/17 15:36:18 [DEBUG] raft: Vote granted from 808644da-c526-efa2-4f37-fff96168dcd1 in term 2. Tally: 1
2019/06/17 15:36:18 [INFO] raft: Election won. Tally: 1
2019/06/17 15:36:18 [INFO] raft: Node at 127.0.0.1:8300 [Leader] entering Leader state
2019/06/17 15:36:18 [INFO] consul: cluster leadership acquired
2019/06/17 15:36:18 [INFO] consul: New leader elected: localhost
2019/06/17 15:36:18 [INFO] connect: initialized primary datacenter CA with provider "consul"
2019/06/17 15:36:18 [DEBUG] consul: Skipping self join check for "localhost" since the cluster is too small
2019/06/17 15:36:18 [INFO] consul: member 'localhost' joined, marking health alive
2019/06/17 15:36:18 [DEBUG] agent: Skipping remote check "serfHealth" since it is managed automatically
2019/06/17 15:36:18 [INFO] agent: Synced node info
2019/06/17 15:36:18 [DEBUG] agent: Node info in sync
2019/06/17 15:36:18 [DEBUG] agent: Skipping remote check "serfHealth" since it is managed automatically
2019/06/17 15:36:18 [DEBUG] agent: Node info in sync
2019/06/17 15:37:18 [DEBUG] consul: Skipping self join check for "localhost" since the cluster is too small
2019/06/17 15:37:49 [DEBUG] agent: Skipping remote check "serfHealth" since it is managed automatically
2019/06/17 15:37:49 [DEBUG] agent: Node info in sync
2019/06/17 15:38:18 [DEBUG] manager: Rebalanced 1 servers, next active server is localhost.dc1 (Addr: tcp/127.0.0.1:8300) (DC: dc1)
2019/06/17 15:38:18 [DEBUG] consul: Skipping self join check for "localhost" since the cluster is too small
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
上面贴出了Consul启动的输出日志,对日志做如下分析和说明:
- -dev:dev是consul多种启动模式的一种,dev是development的缩写,代表的是开发模式,该种启动模式仅仅是为了快速便捷的启动单节点consul,比如当前环境。
- Consul agent running!:表示该consul节点正常运行起来。
- Datacenter:’dc1′ 表示当前节点所属的数据中心的名称为dc1。
- Server:true(bootstrap:false) 表示该节点属于Server角色。Consul节点统称为agent,有两类:Client、Server。
- raft: Heartbeat timeout from "" reached, starting election Raft算法开始进行Leader节点选举。
- consul: cluster leadership acquired、consul: New leader elected: localhost Leader节点选举结束,本地唯一的节点被选举为leader节点。
- consul: member ‘localhost’ joined, marking health alive 目前localhost节点是一个健康正常的节点
# 查看consul节点信息
在consul启动后,可以通过命令查看节点的信息。在原有已经启动consul的终端窗口之外,重新开启新的终端窗口,执行如下命令:
consul members
1
Node Address Status Type Build Protocol DC Segment
localhost 127.0.0.1:8301 alive server 1.5.1 2 dc1
1
2
2
输出日志说明:
- Address:节点地址
- Status:alive表示节点健康运行
- Type:节点的类型,有两种:server、client
- DC:Datacenter的缩写,dc1表示该节点属于Datacenter1
# UI界面访问
终端命令行下启动consul的dev模式后,通过members命令查看节点信息,除此以外,还可以使用Http的浏览器访问的模式,查看节点信息。 consul启动,正常运行后,打开浏览器,在地址栏中键入:http://localhost:8500。可以查看节点信息,如下图 (opens new window):
# 停止服务
在节点运行终端中执行:ctrl + c,表示退出节点运行。
2019/06/17 16:21:43 [INFO] agent: Caught signal: interrupt
2019/06/17 16:21:43 [INFO] agent: Graceful shutdown disabled. Exiting
2019/06/17 16:21:43 [INFO] agent: Requesting shutdown
2019/06/17 16:21:43 [WARN] agent: dev mode disabled persistence, killing all proxies since we can't recover them
2019/06/17 16:21:43 [DEBUG] agent/proxy: Stopping managed Connect proxy manager
2019/06/17 16:21:43 [INFO] consul: shutting down server
2019/06/17 16:21:43 [WARN] serf: Shutdown without a Leave
2019/06/17 16:21:43 [WARN] serf: Shutdown without a Leave
2019/06/17 16:21:43 [INFO] manager: shutting down
2019/06/17 16:21:43 [INFO] agent: consul server down
2019/06/17 16:21:43 [INFO] agent: shutdown complete
2019/06/17 16:21:43 [INFO] agent: Stopping DNS server 127.0.0.1:8600 (tcp)
2019/06/17 16:21:43 [INFO] agent: Stopping DNS server 127.0.0.1:8600 (udp)
2019/06/17 16:21:43 [INFO] agent: Stopping HTTP server 127.0.0.1:8500 (tcp)
2019/06/17 16:21:43 [INFO] agent: Waiting for endpoints to shut down
2019/06/17 16:21:43 [INFO] agent: Endpoints down
2019/06/17 16:21:43 [INFO] agent: Exit code: 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
退出节点运行。
# consul dev模式示意图
上诉consul agent -dev模式下的启动与运行consul节点。集群中只包含一个节点,唯一的节点被选举成为Leader节点。