https://blog.csdn.net/u014449653/article/details/61917159
部署consul:
環境:linux-64bit
點擊進入下載cansul網頁
或者直接使用命令行:
wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip
unzip consul_0.7.5_linux_amd64.zip
接下來可以看見目錄下多了一個文件 consul
輸入以下命令和結果表示基本安裝成功
[hehe@pluto ~]$ ./consul
usage: consul [--version] [--help] <command> [<args>]
Available commands are:
agent Runs a Consul agent
configtest Validate config file
event Fire a new event
exec Executes a command on Consul nodes
force-leave Forces a member of the cluster to enter the "left" state
info Provides debugging information for operators
join Tell Consul agent to join cluster
keygen Generates a new encryption key
keyring Manages gossip layer encryption keys
kv Interact with the key-value store
leave Gracefully leaves the Consul cluster and shuts down
lock Execute a command holding a lock
maint Controls node or service maintenance mode
members Lists the members of a Consul cluster
monitor Stream logs from a Consul agent
operator Provides cluster-level tools for Consul operators
reload Triggers the agent to reload configuration files
rtt Estimates network round trip time between nodes
snapshot Saves, restores and inspects snapshots of Consul server state
version Prints the Consul version
watch Watch for changes in Consul
[hehe@pluto ~]$
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
以ui形式開啓:
./consul agent -server -ui -bootstrap-expect 1 -data-dir /tmp/consul
輸入control+c可以優雅的退出
[hehe@pluto ~]$ ./consul members
Node Address Status Type Build Protocol DC
pluto 192.168.122.1:8301 alive server 0.7.5 2 dc1
[hehe@pluto ~]$
可以查看server的信息
1
2
3
4
5
6
[hehe@pluto ~]$ curl 127.0.0.1:8500/v1/catalog/nodes
[{"ID":"ec5f2994-0b0c-44b0-81d6-9787c8d2a664","Node":"pluto","Address":"192.168.122.1","TaggedAddresses":{"lan":"192.168.122.1","wan":"192.168.122.1"},"Meta":{},"CreateIndex":4,"ModifyIndex":5}][hehe@pluto ~]$
查看節點
1
2
3
4
以配置啓動:
1
mkdir /home/hehe/etc/consul.d .d是攜帶信息的文件夾
cd 到改目錄下面
vim mysql.json
把下面的json內容寫進去
對mysql的端口進行檢測。注:mysql是tcp協議,支持腳本,http,tcp,ttl,python
vim mysql.json
{
"services":[
{
"id":"mysql",
"name":"mysql",
"tags":["mysql"],
"address":"127.0.0.1",
"port":3306,
"checks":[
{
"Tcp":"127.0.0.1:3306",
"interval":"10s"
}
]
}
]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
根據新的配置重啓服務
./consul agent -server -ui -bootstrap-expect 1 -data-dir /tmp/consul -config-dir etc/consul.d
[hehe@pluto ~]$ ./consul agent -server -ui -bootstrap-expect 1 -data-dir /tmp/consul -config-dir etc/consul.d
==> WARNING: BootstrapExpect Mode is specified as 1; this is the same as Bootstrap mode.
==> WARNING: Bootstrap mode enabled! Do not enable unless necessary
==> Starting Consul agent…
==> Starting Consul agent RPC…
==> Consul agent running!
Version: ‘v0.7.5’
Node ID: ‘ec5f2994-0b0c-44b0-81d6-9787c8d2a664’
Node name: ‘pluto’
Datacenter: ‘dc1’
Server: true (bootstrap: true)
Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400)
Cluster Addr: 192.168.122.1 (LAN: 8301, WAN: 8302)
Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false
Atlas:
==> Log data will now stream in as it occurs:
2017/03/13 15:29:40 [INFO] raft: Initial configuration (index=1): [{Suffrage:Voter ID:192.168.122.1:8300 Address:192.168.122.1:8300}]
2017/03/13 15:29:40 [INFO] raft: Node at 192.168.122.1:8300 [Follower] entering Follower state (Leader: "")
2017/03/13 15:29:40 [INFO] serf: EventMemberJoin: pluto 192.168.122.1
2017/03/13 15:29:40 [WARN] serf: Failed to re-join any previously known node
2017/03/13 15:29:40 [INFO] consul: Adding LAN server pluto (Addr: tcp/192.168.122.1:8300) (DC: dc1)
2017/03/13 15:29:40 [INFO] serf: EventMemberJoin: pluto.dc1 192.168.122.1
2017/03/13 15:29:40 [WARN] serf: Failed to re-join any previously known node
2017/03/13 15:29:40 [INFO] consul: Adding WAN server pluto.dc1 (Addr: tcp/192.168.122.1:8300) (DC: dc1)
2017/03/13 15:29:48 [ERR] agent: failed to sync remote state: No cluster leader
2017/03/13 15:29:49 [WARN] raft: Heartbeat timeout from "" reached, starting election
2017/03/13 15:29:49 [INFO] raft: Node at 192.168.122.1:8300 [Candidate] entering Candidate state in term 6
2017/03/13 15:29:49 [INFO] raft: Election won. Tally: 1
2017/03/13 15:29:49 [INFO] raft: Node at 192.168.122.1:8300 [Leader] entering Leader state
2017/03/13 15:29:49 [INFO] consul: cluster leadership acquired
2017/03/13 15:29:49 [INFO] consul: New leader elected: pluto
2017/03/13 15:29:49 [WARN] agent: socket connection failed '127.0.0.1:3306': dial tcp 127.0.0.1:3306: getsockopt: connection refused
2017/03/13 15:29:51 [INFO] agent: Synced service 'mysql'