Docker笔记 - Swarm模式
Docker笔记 - Swarm模式
参考链接:Docker官方文档
Tip: 为普通用户添加docker权限的方法(参考链接):
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Swarm mode overview
Swarm mode key concepts
Nodes(节点)
有manager节点、worker节点。
manager节点将工作单元(称为任务, tasks)分配给worker节点。
Services(服务)和tasks(任务)
replicated services:将复制的tasks分配到各节点。
global services:在每个节点上只运行1个task。
task:1个task携带1个Docker容器和在容器内运行的指令,是swarm的基本单元。由manager节点分配给worker节点。
负载均衡
进入负载均衡(ingress load balancing)
发布端口(PublishedPort):swarm manager会自动为服务分配PublishedPort。
内部负载均衡(internal load balancing):Swarm模式下,内部DNS组件会自动为每个服务分配一个DNS入口。
Get started with swarm mode
开放端口(Open protocols and ports between the hosts)
参考链接:
- Ubuntu开放指定端口
- CentOS开放指定端口
此步骤要求端口2377(TCP)、7946(TCP/UDP)和4789(UDP)必须处于可用状态。
通过netstat -tunlp检查端口。
开放端口方法:
Ubuntu:
sudo ufw enable
sudo ufw allow 2377
sudo ufw allow 7946
sudo ufw allow 4789
sudo ufw status
CentOS:
systemctl start firewalld
firewall-cmd --zone=public --add-port=2377/tcp --permanent
firewall-cmd --zone=public --add-port=7946/tcp --permanent
firewall-cmd --zone=public --add-port=7946/udp --permanent
firewall-cmd --zone=public --add-port=4789/udp --permanent
firewall-cmd --list-ports
其中--permanent代表永久开放端口。
注:系统重启之后,docker、ufw和firewalld进程和端口都会关闭(如果没有设置自启),所以如果worker无法加入swarm,先使用
systemctl status检查上述进程是否开启,再用ufw status或firewall-cmd --list-ports检查端口是否开启。
Scale the service
在示例中,通过docker service scale helloworld=5将任务数增加到了5个,如果当前的worker节点是可用的,则新增的任务会分配给worker节点。此时通过docker ps指令,在manager主机将会看到(举例)3个任务,在worker主机看到2个任务。如果worker主机停止运行,则2个任务会分配到manager主机运行,从而保障了任务不中断。
通过docker service ps helloworld可查看所有任务及运行它的节点。
Use swarm mode routing mesh
注:本节中包含dns-cache镜像的部分无法运行,这是docker文档问题,详见dns-cache issue。之前没有解决,我又提了1次issue,详见此处。
之后内容待更新...
## How swarm mode works
## Run Docker in swarm mode
## Join nodes to a swarm
## Manage nodes in a swarm
## Deploy services to a swarm
## Deploy a stack to a swarm
## Store service configuration data
## Manage sensitive data with Docker secrets
## Lock your swarm
## Manage swarm service networks
## Swarm administration guide
## Raft consensus in swarm mode

浙公网安备 33010602011771号