1.编排swarm简介
- 学习怎么将 docker 用于生产环境,前面学的是用于本地测试环境
- 之前学的是通过docker客户端连接安装好docker的 linux 机器,如下图
- 生产环境下机器和容器都非常多,怎么去管理容器?怎么横向扩展?如果容器down了怎么恢复?如何更新容器不影响业务?如何监控容器?如何调度容器的创建?如何保护隐私数据?
- swarm是内置于docker的容器编排工具
- swarm集群架构图,有manager和worker两种角色
- manager至少有两个,内置分布式存储数据库实现数据同步,这里是通过Raft进行数据同步的,不会出现脑裂的情况,最终实现HA
- worker之间通过gossip的网络做数据同步
- service和replicas,部署nginx的service,实际部署产生三个容器,三个容器通过调度系统,调度到不同的节点
- 也就是部署时,最初是不知道扩展节点会部署到哪里的,由swarm通过调度算法去算的,看哪个机器目前空闲
- 服务创建和调度
- 在swarm manage做决策,决定将worker部署到哪里
2.三节点swarm集群的搭建
- 准备三台装好docker的机器,这里做一个manager,两个worker
- 在主节点node01初始化swarm
- 运行完生成一行命令,子节点加入时,复制这一行代码执行就可以
- node02和node03分别作为worker加入
- 查看当前swarm节点
- 节点退出swarm集群
- 快速部署:
- 地址: https://labs.play-with-docker.com/
- 执行上面的步骤
3.创建维护Service并扩展
- 创建service
- 查看service状态
- 查看service创建的container的情况
- 然后在对应节点可以查看进程
- 将service横向扩展
- 查看一共有5个demo实例
- 不同节点查看进程,5个service平均分配到manager和workder
- node02中,删除一个容器
- 删完立刻去主节点查看,少了一个demo实例
- 主节点查看,会自动恢复
- 主节点删除service
4.使用DockerStack部署VotingApp
- 进入之前的/home/voting-example目录,将之前的docker-compose.yml内容删掉
- swarm模式编译运行
- 查看运行状态
- 查看运行详细情况,多次执行,直到部署好
- 访问IP:5000是投票的页面
- 访问IP:5001是查看结果的页面
- 集群运行状态下,将vote扩展为3个
- 查看到多了一个实例
- 停止并删除所有service
5.使用DockerStack部署可视化应用
- 创建目录
- 部署服务
- 查看stack部署情况
- 浏览器访问任意节点的9001端口
- 查看stack实例
- 集群运行状态下,将stack-demo_portainer扩展为3个
- 浏览器访问任意节点的9001端口,此时stack-demo_portainer变为了3个实例
- 删除stack实例
6.使用并管理DockerSecret
- secret可以是用户名和密码,也可以是SSH key,可以是任何不想让别人看到的数据
- docker swarm的架构如下,manager节点有基于raft的内置的分布式存储,是加密后存储的,worker信息也是加密是,也是分布式存储的
- 随意创建一个文件
- 创建secret
- 此时密码已经存储到manager的分布式存储中了
- 查看secret
- 也可以从标准输入创建
- 再次查看secret
- 删除secret
- 创建 mysql 的service
- 查看进程运行的节点,这里看到是node03运行的
- node03中查看进程
- node03中交互运行mysql
- 交互运行时可以查看密码,然后用这个密码登录mysql
7.更新service版本
- 创建demo网络
- 查看网络
- 创建service,可以去dockerHub查看nginx版本
- 访问80端口,会返回一个欢迎页
- 在node01写一个脚本,不停访问
- 在另一个会话,更新service的版本到1.13
- node02访问业务,自动切换到新版本
- 在另一个会话,更新访问端口
- node02访问,查看效果
学院 Go 语言视频主页
https://edu.csdn.net/lecturer/1928以上所述就是小编给大家介绍的《1.07 容器编排docker Swarm》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Docker 容器编排实践练习
- Kubernetes容器编排的三大支柱
- [译] 容器编排的优势与特点
- 1.09 容器编排Kubernetes
- Docker 多容器编排Swarm(六)
- Kubernetes 1.11.0 发布,容器编排工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。