Consul搭建伺服器集群

2021-09-24 09:27:22 字數 4237 閱讀 9667

linux centos 7.2

docker

參見:

consul入門

參見:

consul的安裝路徑是在我們使用docker安裝

建立docker安裝指令碼dockerfile,放置在目錄/usr/docker/consul下

from  alpine

maintainer peter "[email protected]"

#配置環境變數consul版本

env consul_version=1.4.3

env hashicorp_releases=

#安裝consul

run apk upgrade && \

apk add net-tools && \

apk add wget && \

apk add unzip && \

wget $/consul/$/consul_$_linux_amd64.zip && \

unzip consul_$_linux_amd64.zip && \

rm -rf consul_$_linux_amd64.zip && \

mv consul /usr/local/bin

volume /consul/data

#預開放埠

expose 8300

expose 8301 8301/udp 8302 8302/udp

expose 8500 8600 8600/udp

指令碼中使用aipine,這個比較小的作業系統安裝在容器中,比較節省空間。

執行docker指令碼,生成容器映象

cd /usr/docker/consul

docker build -t counsl  .

安裝成功後,截圖如上,生成了名為consul的映象

建立自定義網路

docker network create --subnet=192.167.1.0/16 swoftnetwork

網路節點規劃

容器名稱

容器ip位址

對映埠號

宿主機ip位址

服務執行模式

consul-server1

192.167.1.10

8501 -> 8500

172.27.0.8

server master

consul-server2

192.167.1.11

8502 -> 8500

172.27.0.8

server

consul-server3

192.167.1.12

8503 -> 8500

172.27.0.8

server

consul-client1

192.167.1.13

8504 -> 8500

172.27.0.8

client

構建容器

docker run -itd --name consul_server1 -p 8501:8500 --network swoftnetwork  --ip 192.167.1.10   consul

docker run -itd --name consul_server2 -p 8502:8500 --network swoftnetwork  --ip 192.167.1.11   consul

docker run -itd --name consul_server3 -p 8503:8500 --network swoftnetwork  --ip 192.167.1.12   consul

docker run -itd --name consul_client -p 8504:8500 --network swoftnetwork  --ip 192.167.1.13   consul

構建成功如上圖。

進入節點伺服器,啟動consul

docker exec -it consul_server1 sh

consul agent -server -ui -node=consul_server1  -bootstrap-expect=1  -bind=192.167.1.10  -data-dir /consul/data -join=192.167.1.10 -client 0.0.0.0

注意第乙個的agent引數有些不同,所有的agent都加入到192.167.1.10,同時192.167.1.10提供對外ui訪問。

引數含義:

agent   **模式

-server  表示啟動的是乙個服務

-client  啟動客戶端

-bootstrap-expect 1 表示等待多少個節點再啟動,這裡1個,就是自己乙個就啟動了

-node=ali_1 就是給consul服務起個別名為ali_1

-bind=192.167.1.10  繫結內網ip

-data-dir /opt/data1 資料儲存目錄為/opt/data1

-ui 啟動預設ui介面

-client  consul繫結在哪個client位址上,這個位址提供http、dns、rpc等服務,預設是127.0.0.1,可指定允許客戶端使用什麼ip去訪問

如上圖 ,節點伺服器啟動consul成功。

另外2臺consul節點伺服器可按上述方法啟動。

docker exec -it consul_server2 sh

consul agent -server -ui -node=consul_server2  -bootstrap-expect=3  -bind=192.167.1.11  -data-dir /consul/data -join=192.167.1.10 -client 0.0.0.0

docker exec -it consul_server3 sh

consul agent -server -ui -node=consul_server3 -bootstrap-expect=3 -bind=192.167.1.12 -data-dir /consul/data -join=192.167.1.10 -client 0.0.0.0

啟動3個consul伺服器,加入leader節點192.167.1.10,這樣就組成了consul伺服器集群。

加入consul客戶端

docker exec -it consul_client sh

consul agent -client -ui -node=consul_client1 -bind=192.167.1.13 -data-dir=/consul/data -join=192.167.1.10 -client 0.0.0.0

進入consul客戶端節點,啟動consul

docker exec -it consul_client sh

consul agent -client -node=client1 -bind=192.167.1.13 -data-dir=/consul/data  -join=192.167.1.10 -client 0.0.0.0

建立集群

使用192.167.1.10作為主機,將其他節點加入它,建立集群

#docker exec -it consul_server1 sh

#consul join 192.167.1.11

#consul join 192.167.1.12

成功後,即可將此3個節點組成consul集群環境。

進入consul控制台,檢視節點情況

瀏覽器訪問:http://ip:8501/ui/

啟動成功,檢視節點執行正常。 

持續完善,待續...

搭建consul 集群

上圖是官網提供的乙個事例系統圖,圖中的server是consul服務端高可用集群,client是consul客戶端。consul客戶端不儲存資料,客戶端將接收到的請求 給響應的server端。server之間通過區域網或廣域網通訊實現資料一致性。每個server或client都是乙個consul a...

搭建Consul集群

wget unzip consul 1.6.3 linux amd64.zip解壓後,只有乙個consul可執行的檔案,將其拷貝到想要安裝的目錄中 mv consul opt 完成consul的安裝後,必須執行agent。agent可以執行為server或client模式。每個資料中心至少必須擁有一...

搭建consul 集群

consul 安裝 1 離線安裝 a 上傳consul檔案到 usr local bin 目錄 d 訪問ip 8080 e 訪問ip 8080 3 consul集群搭建 進入 192.168.1.9的機器 a cd usr local bin b consul agent server ui boo...