1.安裝ubuntu
可以使用虛擬機(jī)或者實(shí)體機(jī)安裝ubuntu华坦,版本選擇14.04即可拳昌,安裝指南常摧,可參考鏈接:http://www.reibang.com/p/0f0ed7d8e06e
2. 安裝docker
ubuntu安裝成功后安裝docker珊豹,參考鏈接:https://www.runoob.com/docker/ubuntu-docker-install.html
3. 安裝及使用consul
(參考資料:https://yq.aliyun.com/articles/696142)
拉取最新版本的consul鏡像
docker pull consul
啟動(dòng)一個(gè)名為consul_server_1的Docker容器
docker run -d -p 8500:8500 -v /data/consul:/consul/data -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 213e00e87c53 agent -server -bootstrap -ui -node=1 -client='0.0.0.0'
注意:
- eth0是網(wǎng)卡名,根據(jù)自己的網(wǎng)卡名做修改冕茅,可使用
ifconfig
查看 - /consul/data 是 Consul 持久化地方伤极,如果需要持久化那 Dooker 啟動(dòng)時(shí)候需要給它指定一個(gè)數(shù)據(jù)卷 -v /data/consul:/consul/data,若不存在可以創(chuàng)建
- 213e00e87c53為consul的鏡像hash姨伤,每臺(tái)機(jī)器都不同哨坪,可以通過(guò)
docker images
查看,如下圖:
使用docker container ls
可以查看容器啟動(dòng)情況
查看consul管理界面
http://192.168.109.131:8500/ui
姜挺,192.168.109.131是ubuntu所在機(jī)器的ip
如下圖:
1齿税、2、3是節(jié)點(diǎn)名稱
Consul 命令簡(jiǎn)單介紹
agent : 表示啟動(dòng) Agent 進(jìn)程炊豪。
-server:表示啟動(dòng) Consul Server 模式。
-client:表示啟動(dòng) Consul Cilent 模式拧篮。
-bootstrap:表示這個(gè)節(jié)點(diǎn)是 Server-Leader 词渤,每個(gè)數(shù)據(jù)中心只能運(yùn)行一臺(tái)服務(wù)器。技術(shù)角度上講 Leader 是通過(guò) Raft 算法選舉的串绩,但是集群第一次啟動(dòng)時(shí)需要一個(gè)引導(dǎo) Leader缺虐,在引導(dǎo)群集后,建議不要使用此標(biāo)志礁凡。
-ui:表示啟動(dòng) Web UI 管理器高氮,默認(rèn)開(kāi)放端口 8500,所以上面使用 Docker 命令把 8500 端口對(duì)外開(kāi)放顷牌。
-node:節(jié)點(diǎn)的名稱剪芍,集群中必須是唯一的。
-client:表示 Consul 將綁定客戶端接口的地址窟蓝,0.0.0.0 表示所有地址都可以訪問(wèn)罪裹。
-join:表示加入到某一個(gè)集群中去。 如:-join=192.168.109.131
查看consul集群狀態(tài)
docker exec -t consul_server_1 consul members
Status表示它們的狀態(tài)运挫,都是alive状共。Type表示它們的類(lèi)型,DC表示數(shù)據(jù)中心谁帕,是dc1
Address是引導(dǎo)consul的ip峡继,創(chuàng)建consul集群時(shí)會(huì)用到這個(gè)地址
下面再添加兩個(gè)節(jié)點(diǎn),命名為 -node=2 匈挖、-node=3
指令如下:
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_2 213e00e87c53 agent -server -node=2 -join='172.17.0.2'
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_3 213e00e87c53 agent -server -node=3 -join='172.17.0.2'
將Client加入集群
Client 在 Consul 集群中起到了代理 Server 的作用碾牌,Client 模式不持久化數(shù)據(jù)康愤。一般情況每臺(tái)應(yīng)用服務(wù)器都會(huì)安裝一個(gè) Client ,這樣可以減輕跨服務(wù)器訪問(wèn)帶來(lái)性能損耗小染。也可以減輕 Server的請(qǐng)求壓力翘瓮。
指令如下:
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_4 213e00e87c53 agent -client -node=clint -join='172.17.0.2' -client='0.0.0.0'
docker run -d -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_5 213e00e87c53 agent -client -node=clint2 -join='172.17.0.2' -client='0.0.0.0'
至此,consul集群就搭建完畢了裤翩,可以寫(xiě)代碼资盅,實(shí)現(xiàn)服務(wù)注冊(cè)了