Docker Swarm 优点
任何规模都有高性能表现
灵活的容器调度
服务的持续可用性
和 Docker API 及整合支持的兼容性
Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持。
Docker swarm节点分为manager管理节点和worker工作节点。
Task任务是swarm中的最小调度单位,可以理解为一个单一的容器。
Services服务是指一组任务的集合,服务定义了任务的属性。
工作原理如下:
适合小规模docker集群。
docker swarm实现小规模集群负载均衡
准备虚拟机,server1负责私有harbor仓库,server2负责docker swarm 集群leader , server3、server4为集群后端
server1:配置好harbor后,启动
上传镜像myapp到容器仓库 进入harbor仓库web查看
server2:初始化集群docker swarm init
为server3、server4安装好docker-ce server3、server4连接仓库,传递认证key和仓库json文件
server3、4:根据server2初始化的信息加入servre2docker swarm集群docker swarm join --token SWMTKN-1-1ttb8r7xm8d390mczvei5wpgi1fmjsdykoyp1h8oa7d9v91wq4-0zu8b6xmia2nocdctozzvt6kp 172.25.9.2:2377
server2:创建集群服务,名为webservice 端口映射80:80 开启三个节点 镜像为myapp:v1
查看集群和集群节点服务
访问可以看到访问的主机节点负载均衡
命令扩容docker service scale webservice=6
六台worker主机均负载均衡
使用yaml脚本添加监控visualizer并更新设定swarm镜像版本
server1:将visualizer镜像压入harbor仓库,并且倒入
server2操作:vim docker-compose.yml
使用脚本拉起swarm服务集群,名为myclusterdocker stack deploy -c docker-compose.yml mycluster
查看集群状态
网页访问监控visualizer,映射端口到主机的8080
修改yaml脚本,重新拉起容器就是更新版本swarm集群在创建成功时会自动添加虚拟网卡
图形化集群管理
将入portainer-agent.tarportainer.tar 上传harbor容器仓库
在manager主机中执行脚本docker stack deploy -c portainer-agent-stack.yml portainer
拉起服务后查看服务状态
网页访问图形管理界面,映射端口为9000
首次进入需要设置账号和密码