===============================================
2019/4/9_第3次修改 ccb_warlock
更新說明:
2019/4/9:重新整理了docker swarm的部署步驟
2018/12/14:精簡docker-compose部署的命令;
增加18.09.0-ce以后的hosts(2.3 配置hosts信息)配置方法;
===============================================
由於k8s的方案被擱置了,目前只能先考慮使用swarm搭建小規模的集群。經過幾天對swarm的使用,對於與docker相關的docker-compose、service、stack相關內容有了更明確的理解。對比swarm與k8s也是各有千秋。
2019/4/9,重新整理了swarm的部署順序,將docker的安裝部分拆分到centos7 部署 docker ce,根據節點類型分別整理了部署步驟。
一、准備工作
1.1 修改主機名(可以不修改)
為了便於區分節點,用主機名來標記節點
manager節點執行:
hostnamectl --static set-hostname manager01
worker節點執行:
hostnamectl --static set-hostname worker01
修改完后,重新開shell控制台。
二、管理節點(Manager)
2.1 安裝docker ce
可以參考下面的文章安裝docker ce
centos7 部署 docker ce:https://www.cnblogs.com/straycats/p/10680502.html
2.2 配置hosts信息
2.2.1 18.06.1-ce及以前版本
# 修改docker daemon配置
mkdir -p /etc/docker
vim /etc/docker/daemon.json
增加hosts的內容,wq保存。
{ "hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"] }
2.2.2 18.09.0-ce及以后版本
systemctl edit docker
將下面的內容添加到文件(/etc/systemd/system/docker.service.d/override.conf)中,wq保存。
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
# 重新加載systemctl的配置
systemctl daemon-reload
2.3 重啟docker
systemctl restart docker
2.4 創建swarm集群
# 初始化swarm集群(我使用的虛擬機IP為192.168.12.11)
docker swarm init
# 創建集群(當宿主機有多個IP時,需要指定IP)
docker swarm init --advertise-addr 192.168.12.11
創建后,該節點為manager節點(leader)。
如果需要添加其他管理節點,可以使用下面的命令查看作為管理節點加入集群的命令。
docker swarm join-token manager
三、工作節點(Worker)
3.1 安裝docker ce
可以參考下面的文章安裝docker ce
centos7 部署 docker ce:https://www.cnblogs.com/straycats/p/10680502.html
3.2 配置hosts信息
3.2.1 18.06.1-ce及以前版本
# 修改docker daemon配置
mkdir -p /etc/docker
vim /etc/docker/daemon.json
增加hosts的內容,wq保存。
{
"hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"] }
3.2.2 18.09.0-ce及以后版本
systemctl edit docker
將下面的內容添加到文件(/etc/systemd/system/docker.service.d/override.conf)中,wq保存。
[Service]
ExecStart= ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
# 重新加載systemctl的配置
systemctl daemon-reload
3.3 重啟docker
systemctl restart docker
3.4 將該工作節點添加到swarm集群中
# 查看作為工作節點接入集群的命令
docker swarm join-token worker
# 將自己注冊到該集群(192.168.12.11)
docker swarm join --token SWMTKN-1-1w1q09p1z37n4j24usz9lwb0i01t2ecuxn4ad5ctfdpks4270r-5p5mmiw6u77skwd49sxovztxc 192.168.12.11:2377
PS.命令中的token信息根據實際情況更換。
參考資料:
2.https://docs.docker.com/engine/reference/commandline/dockerd/