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)

参考链接:

  1. Ubuntu开放指定端口
  2. 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 statusfirewall-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
posted @ 2023-11-11 15:14  Digitzh  阅读(59)  评论(0)    收藏  举报