1.07 容器编排docker Swarm

栏目: 编程工具 · 发布时间: 5年前

1.编排swarm简介

  • 学习怎么将 docker 用于生产环境,前面学的是用于本地测试环境
  • 之前学的是通过docker客户端连接安装好docker的 linux 机器,如下图
    1.07 容器编排docker Swarm
  • 生产环境下机器和容器都非常多,怎么去管理容器?怎么横向扩展?如果容器down了怎么恢复?如何更新容器不影响业务?如何监控容器?如何调度容器的创建?如何保护隐私数据?
  • swarm是内置于docker的容器编排工具
    1.07 容器编排docker Swarm
  • swarm集群架构图,有manager和worker两种角色
  • manager至少有两个,内置分布式存储数据库实现数据同步,这里是通过Raft进行数据同步的,不会出现脑裂的情况,最终实现HA
  • worker之间通过gossip的网络做数据同步
    1.07 容器编排docker Swarm
  • service和replicas,部署nginx的service,实际部署产生三个容器,三个容器通过调度系统,调度到不同的节点
  • 也就是部署时,最初是不知道扩展节点会部署到哪里的,由swarm通过调度算法去算的,看哪个机器目前空闲
    1.07 容器编排docker Swarm
  • 服务创建和调度
  • 在swarm manage做决策,决定将worker部署到哪里
    1.07 容器编排docker Swarm

2.三节点swarm集群的搭建

  • 准备三台装好docker的机器,这里做一个manager,两个worker
  • 在主节点node01初始化swarm
  • 运行完生成一行命令,子节点加入时,复制这一行代码执行就可以
    1.07 容器编排docker Swarm
  • node02和node03分别作为worker加入
    1.07 容器编排docker Swarm 1.07 容器编排docker Swarm
  • 查看当前swarm节点
    1.07 容器编排docker Swarm
  • 节点退出swarm集群
    1.07 容器编排docker Swarm
  • 快速部署:
  • 地址: https://labs.play-with-docker.com/
    1.07 容器编排docker Swarm
  • 执行上面的步骤

3.创建维护Service并扩展

  • 创建service
    1.07 容器编排docker Swarm
  • 查看service状态
    1.07 容器编排docker Swarm
  • 查看service创建的container的情况
    1.07 容器编排docker Swarm
  • 然后在对应节点可以查看进程
    1.07 容器编排docker Swarm
  • 将service横向扩展
    1.07 容器编排docker Swarm
  • 查看一共有5个demo实例
    1.07 容器编排docker Swarm
  • 不同节点查看进程,5个service平均分配到manager和workder
    1.07 容器编排docker Swarm
  • node02中,删除一个容器
    1.07 容器编排docker Swarm
  • 删完立刻去主节点查看,少了一个demo实例
    1.07 容器编排docker Swarm
  • 主节点查看,会自动恢复
    1.07 容器编排docker Swarm
  • 主节点删除service
    1.07 容器编排docker Swarm

4.使用DockerStack部署VotingApp

  • 进入之前的/home/voting-example目录,将之前的docker-compose.yml内容删掉
    1.07 容器编排docker Swarm
  • swarm模式编译运行
    1.07 容器编排docker Swarm
  • 查看运行状态
    1.07 容器编排docker Swarm
  • 查看运行详细情况,多次执行,直到部署好
    1.07 容器编排docker Swarm
  • 访问IP:5000是投票的页面
    1.07 容器编排docker Swarm
  • 访问IP:5001是查看结果的页面
    1.07 容器编排docker Swarm
  • 集群运行状态下,将vote扩展为3个
    1.07 容器编排docker Swarm
  • 查看到多了一个实例
    1.07 容器编排docker Swarm
  • 停止并删除所有service
    1.07 容器编排docker Swarm

5.使用DockerStack部署可视化应用

  • 创建目录
    1.07 容器编排docker Swarm
  • 部署服务
    1.07 容器编排docker Swarm
  • 查看stack部署情况
    1.07 容器编排docker Swarm
  • 浏览器访问任意节点的9001端口
    1.07 容器编排docker Swarm
  • 查看stack实例
    1.07 容器编排docker Swarm
  • 集群运行状态下,将stack-demo_portainer扩展为3个
    1.07 容器编排docker Swarm
  • 浏览器访问任意节点的9001端口,此时stack-demo_portainer变为了3个实例
    1.07 容器编排docker Swarm
  • 删除stack实例
    1.07 容器编排docker Swarm

6.使用并管理DockerSecret

  • secret可以是用户名和密码,也可以是SSH key,可以是任何不想让别人看到的数据
  • docker swarm的架构如下,manager节点有基于raft的内置的分布式存储,是加密后存储的,worker信息也是加密是,也是分布式存储的
    1.07 容器编排docker Swarm
  • 随意创建一个文件
    1.07 容器编排docker Swarm
  • 创建secret
    1.07 容器编排docker Swarm
  • 此时密码已经存储到manager的分布式存储中了
    1.07 容器编排docker Swarm
  • 查看secret
    1.07 容器编排docker Swarm
  • 也可以从标准输入创建
    1.07 容器编排docker Swarm
  • 再次查看secret
    1.07 容器编排docker Swarm
  • 删除secret
    1.07 容器编排docker Swarm
  • 创建 mysql 的service
    1.07 容器编排docker Swarm
  • 查看进程运行的节点,这里看到是node03运行的
    1.07 容器编排docker Swarm
  • node03中查看进程
    1.07 容器编排docker Swarm
  • node03中交互运行mysql
    1.07 容器编排docker Swarm
  • 交互运行时可以查看密码,然后用这个密码登录mysql
    1.07 容器编排docker Swarm 1.07 容器编排docker Swarm 1.07 容器编排docker Swarm

7.更新service版本

  • 创建demo网络
    1.07 容器编排docker Swarm
  • 查看网络
    1.07 容器编排docker Swarm
  • 创建service,可以去dockerHub查看nginx版本
    1.07 容器编排docker Swarm
  • 访问80端口,会返回一个欢迎页
    1.07 容器编排docker Swarm
  • 在node01写一个脚本,不停访问
    1.07 容器编排docker Swarm
  • 在另一个会话,更新service的版本到1.13
    1.07 容器编排docker Swarm
  • node02访问业务,自动切换到新版本
    1.07 容器编排docker Swarm
  • 在另一个会话,更新访问端口
    1.07 容器编排docker Swarm
  • node02访问,查看效果
    1.07 容器编排docker Swarm

学院 Go 语言视频主页

https://edu.csdn.net/lecturer/1928

[清华团队带你实战区块链开发]

( https://ke.qq.com/course/344443?tuin=3d17195d )

扫码获取海量视频及源码 QQ群:

721929980

1.07 容器编排docker Swarm

以上所述就是小编给大家介绍的《1.07 容器编排docker Swarm》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

产品增长力

产品增长力

李阳 / 机械工业出版社 / 2018-4-1 / 59

本书由京东资深数据产品经理撰写,重新定义了数据与产品、业务的关系,从数据分析方法、数据价值挖掘、数据结果倒逼业务优化3个层次,以及设计、运营和优化3个维度,为产品增长提供了科学的依据和方法论,得到了PMCaff创始人阿德、GrowingIO创始人&CEO张溪梦、增长官研究院创始人范冰、腾讯高级产品经理刘涵宇等专家的高度评价。 全书内容以理论为主线,以实操为目标,萃取技术实操与管理思维中的精华......一起来看看 《产品增长力》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具