使用Docker鏡像搭建consul和swarm集羣基礎環境及overlay網絡

Docker的使用中,尤爲重要的是服務發現和docker的宿主機集羣及跨主機overlay網絡的搭建,這裏來介紹下常用來配合使用的swarm+consul集羣的搭建(此處全基於docker容器)

集羣介紹:

192.168.11.30 爲consul服務的leader,swarm的集羣server和client節點,併爲primary

192.168.11.32 爲consul服務的節點,swarm的集羣server和client節點,併爲備份節點

服務分佈:

192.168.11.30:

consul、swarm、nginx

192.168.11.32:

consul、swarm、nexus、jenkins、registry

基礎環境

修改docker基礎配置

cluster-store 是consul的leader的地址

cluster-advertise 是swarm client的地址,即當前主機

11.30

vi /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/docker daemon --tls=false -H unix:///var/run/docker.sock  -H tcp://0.0.0.0:2375  --cluster-store=consul://192.168.11.30:8500 --cluster-advertise=192.168.11.30:2375 

systemctl daemon-reload
systemctl restart docker

11.32

vi /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/docker daemon --tls=false -H unix:///var/run/docker.sock  -H tcp://0.0.0.0:2375  --cluster-store=consul://192.168.11.30:8500 --cluster-advertise=192.168.11.32:2375 

systemctl daemon-reload
systemctl restart docker

運行consul鏡像

1. 拉取鏡像
dao pull consul:v0.6.4
2. 防火牆開放端口

11.30

$ firewall-cmd --permanent --add-port={8500/tcp,8300/tcp,8301/tcp,3375/tcp,2375/tcp}
$ firewall-cmd --reload
$ firewall-cmd  --list-all

11.32

$ firewall-cmd --permanent --add-port={8500/tcp,8300/tcp,8301/tcp,3375/tcp,2375/tcp}
$ firewall-cmd --reload
$ firewall-cmd  --list-all
3. 運行consul的docker容器

11.30

docker run -d -h node1 -v /mnt:/data \
    -p 8300:8300 \
    -p 8301:8301 \
    -p 8301:8301/udp \
    -p 8302:8302 \
    -p 8302:8302/udp \
    -p 8400:8400 \
    -p 8500:8500 \
    -p 53:53/udp \
    consul:v0.6.4 agent -server -bootstrap -client=0.0.0.0  -advertise 192.168.11.30 -node=consul-s1

11.32

docker run -d -h node1 -v /mnt:/data \
    -p 8300:8300 \
    -p 8301:8301 \
    -p 8301:8301/udp \
    -p 8302:8302 \
    -p 8302:8302/udp \
    -p 8400:8400 \
    -p 8500:8500 \
    -p 53:53/udp \
    consul:v0.6.4 agent -server  -advertise 192.168.11.32 -node=consul-c1 -join 192.168.11.30
4. 查看consul集羣狀態
curl http://192.168.11.30:8500/v1/status/leader
curl http://192.168.11.30:8500/v1/status/peers

運行swarm集羣

1. 拉取鏡像
dao pull swarm:1.2.5
2. 運行swarm集羣

11.30

docker run -d --restart=always -p 3375:3375 swarm:1.2.5 manage -H :3375 --replication --advertise 192.168.11.30:3375 consul://192.168.11.30:8500

docker run -ti -d --restart=always --name host-1 swarm:1.2.5 join --advertise 192.168.11.30:2375 consul://192.168.11.30:8500

11.32

docker run -d --restart=always -p 3375:3375 swarm:1.2.5 manage -H :3375 --replication --advertise 192.168.11.32:3375 consul://192.168.11.30:8500

docker run -ti -d --restart=always --name host-2 swarm:1.2.5 join --advertise 192.168.11.32:2375 consul://192.168.11.30:8500
3. 查看swarm集羣狀態
docker -H :3375 info

創建跨主機的overlay網絡

docker network create -d overlay --subnet=192.168.20.0/24 firenet

至此基礎服務發現及網絡服務已經搭建完成,愉快的玩耍吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章