
图1
学习背景
简单了解一下 Docker Swarm ,为了后面学习K8S更轻松。。。
准备工作
系统:Centos7.6 / 64 位
Docker-ce:v20.10.8
Docker-compose:v1.24.1
Docker集群部署规划(三主一从)
| 实例 | IP | 角色 |
|---|---|---|
| docker-node03 | 10.88.40.174 | 主 |
| docker-node04 | 10.88.40.178 | 从 |
| docker-node06 | 10.88.40.156 | 主 |
| docker-node07 | 10.88.40.86 | 主 |
重点关注一下Raft一致性算法
至少3个节点,只有大多数( >1 )节点存活,集群才可以使用。
安装Docker-CE
1、若您安装过docker,需要先删掉,之后再安装依赖:
sudo yum remove docker docker-common docker-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、根据版本不同,下载repo文件。您使用的发行版:
wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
软件仓库地址替换为:
sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
3、更新索引文件并安装
sudo yum makecache fast
sudo yum install docker-ce
安装Docker-Compose
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
下载完成后进入 `/usr/local/bin/`
chmod 777 docker-compose

图2
安装Docker Swarm
使用help 命令查看 docker swarm 有哪些命令
docker swarm --help
docker swarm init --help
初始化一个主节点,IP 是私网IP,初始化完成可以得到以下信息:
docker swarm init --advertise-addr 10.88.40.174
Swarm initialized: current node (qcf06webqdxzsll0ojrn28nxp) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-6czjulphzkrktyrl9jyzus477rza0d5bh9zhn5zwq8wt1qlbc2-7p0cf3yj5bnjs6wa2f5mqnobd 10.88.40.174:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
生成 加入 manager 信息
docker swarm join-token manager
生成 加入 worker 信息
docker swarm join-token worker

图3
然后在其他节点执行
docker swarm jsoin ...
查看节点信息
docker node lsdocker node ls

图4
Docker Service
[root@node04 home]# docker service
Usage: docker service COMMAND
Manage services
Commands:
create Create a new service
inspect Display detailed information on one or more services
logs Fetch the logs of a service or task
ls List services
ps List the tasks of one or more services
rm Remove one or more services
rollback Revert changes to a service's configuration
scale Scale one or multiple replicated services
update Update a service
Run 'docker service COMMAND --help' for more information on a command.
例子:创建一个nginx service
docker service create -p 8888:80 --name my-nginx nginx

图5
查看 service 常用命令
docker service ls
docker service ps my-nginx
docker service inspect my-nginx
动态扩缩容 my-nginx 副本数
docker service update --replicas 3 my-nginx
也可以使用
docker service scale my-nginx=3
核心:网络
yum install bridge-utils -y
iptables -nL -t nat

图6
docker service inspect my-nginx
"PublishMode": "ingress"
docker inspect ingress

图7
Docker Stack

图8
简单自学了解下 , https://www.cnblogs.com/secondtonone1/p/14101876.html
Docker Secret

图9
Docker Config

图10