1. 程式人生 > >docker環境下consule叢集搭建

docker環境下consule叢集搭建

  1. 安裝docker

    # 安裝最新版本
    yum install -y docker
    # 啟動docker
    systemctl start docker
    # 設定阿里雲映象加速地址
    		[註冊阿里雲賬號](https://account.aliyun.com/login/login.htm?accounttraceid=f9b25fda-e61d-4a95-b837-f9e5198e6726)
    		# 沒有daemon.json檔案可以自己新建一個
    		vi /etc/docker/daemon.json
    		# daemon檔案內容
    		{
    			"registry-mirrors": ["你自己的阿里雲加速地址"]
    		}
    
  2. 製作consul映象

    cd /opt/  
    # 獲取consul安裝包
    	wget https://releases.hashicorp.com/consul/0.7.2/consul_0.7.2_linux_amd64.zip
    	unzip consul_0.7.2_linux_amd64.zip #解壓壓縮包,解壓後獲得檔案 consul
    	# 如果需要安裝zip服務,  yum install zip unzip
    	rm -rf  consul_0.7.2_linux_amd64.zip # 刪除安裝包
    	vi Dockerfile # 通過Dockerfile建立映象
    	# dockerfile 檔案內容
    		FROM centos:latest   # 指定基礎映象
    		MAINTAINER  yadishaonian  # 作者資訊
    		COPY consul /usr/local/bin  # 將解壓的consul檔案複製到容器的bin目錄下
    		EXPOSE 8300  
    		EXPOSE 8301 8301/udp 8302 8302/udp
    		EXPOSE 8500 8600 8600/udp  # 對外暴露consul服務埠
    	# dockerfile 建立映象
    		docker build -t consul/dong .   # consul/dong 為映象的REPOSITORY
    		docker build -t consul/ya .
    		docker build -t consul/di .
    	#啟動映象
    		docker run -it -d --name consuldong -p 8500:8500 consul/dong /bin/bash
    		docker run -it -d --name consulya -p 8501:8500 consul/ya /bin/bash
    		docker run -it -d --name consuldi -p 8502:8500 consul/di /bin/bash
    
  3. consul 叢集
    上面已經在docker中建立三臺consul伺服器.
    ①.啟動第一臺:

    		1. docker exec -it consuldong /bin/bash  # 進入第一臺consul伺服器
    		2. cd /opt
    		3. mkdir consul
    		4. cd consul
    		5. mkdir data
    		6. mkdir consul.d   # 建立consul執行需要的目錄,不建立啟動報錯
    		7. cd /usr/local/bin/  # 切換到bin目錄下
    		8. nohup consul agent -server  -bootstrap-expect=1  -data-dir=/opt/consul/data  -datacenter=dc1 -rejoin -config-dir /opt/consul/consul.d -client 0.0.0.0 -ui &   # consul 以後臺程序啟動,並且作為叢集中的master,提供UI介面
    		9. consul members  #檢視當前consul執行狀態
    			![記錄address:*172.17.0.4*](https://img-blog.csdnimg.cn/20181031172514933.png)
    		10. exit # 退出當前容器
    

    ②.啟動第二臺(第二與第三臺作為slave節點,操作相同)

    		1. docker exec -it consuldong /bin/bash  # 進入第一臺consul伺服器
    		2. cd /opt
    		3. mkdir consul
    		4. cd consul
    		5. mkdir data
    		6. mkdir consul.d   # 建立consul執行需要的目錄,不建立啟動報錯
    		7. cd /usr/local/bin/  # 切換到bin目錄下
    		8. nohup consul agent -server -data-dir=/opt/consul/data  -datacenter=dc1 -rejoin -client 0.0.0.0 & # consul slave節點啟動方式
    		9. consul join 172.17.0.4 # 加入叢集中
    		10. exit # 退出
    
  4. 開通對外訪問的防火牆策略
    consul對外訪問埠預設為8500.

    firewall-cmd --zone=public --add-port=8500/tcp --permanent  # 開啟8500埠
    firewall-cmd --zone=public --add-port=8501/tcp --permanent  # 開啟8501埠
    firewall-cmd --zone=public --add-port=8502/tcp --permanent  # 開啟8502埠
    
    firewall-cmd --reload  # 重啟防火牆
    
  5. 可以訪問了~
    在這裡插入圖片描述