Docker Swarm简介
Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。
Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。
Swarm可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。
Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具。
Docker Swarm 优点
任何规模都有高性能表现
灵活的容器调度
服务的持续可用性
和 Docker API 及整合支持的兼容性
Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持。
docker swarm 相关概念
节点分为管理 (manager) 节点和工作 (worker) 节点
任务 (Task)是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。
服务 (Services) 是指一组任务的集合,服务定义了任务的属性。
Docker Swarm实践
创建 Swarm 集群
##集群初始化,按照初始化指令在server2和server3上部属集群
##查看节点信息,这时候server1是leader
测试软件myapp
docker service create --name my_cluster --replicas 2 -p 80:80 myapp:v1 ##部属集群
docker service rm my_cluster ##删除集群
docker service ps my_cluster ##查看集群进程
部署测试
部署swarm监控
命令解释:
docker service create 命令创建一个服务
–name 服务名称命名为 my_cluster
–network 指定服务使用的网络模型
–replicas 设置启动的示例数为3
拉取监控镜像
部署监控
拉伸和缩减集群,集群会自动负载均衡到三个主机上
一个集群出现故障的情况,会将集群上的任务分配到别的主机
重启之后不会自动转移到server3,是在重新添加任务的时候,优先添加到server3上,保证负载均衡
节点升级降级
降级
将server2设置为备选leader
将主leader删除
失去查看node的权限
docker swarm leave ##离开集群
server2查看
移除server1
节点升级
开启server4,并配置docker-ce(具体见Docker Machine博客)
配置节点
加入本地私有仓库
启动harbor仓库
部署安装harbor
作本地解析
配置加速器,从本地获取
全部做systemctl reload docker.service
配置证书
上传镜像
测试
结束掉server2上的service并且删除server2和server3和server4上的相关镜像、
集群部署
实现业务滚动更新
滚动更新
docker service update --image httpd --update-parallelism 2 --update-delay 5s my_cluster
–image 指定要更新的镜像
–update-parallelism 指定最大同步更新的任务数
–update-delay 指定更新间隔
上传myapp:v2到本地仓库
滚动更新
测试