docker環境下consule叢集搭建
阿新 • • 發佈:2018-11-03
-
安裝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": ["你自己的阿里雲加速地址"] }
-
製作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
-
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 # 退出
-
開通對外訪問的防火牆策略
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 # 重啟防火牆
-
可以訪問了~