Go游戏服务器开发的一些思考(六):Docker Swarm Mode

来源:互联网 发布:vb 中的structure 编辑:程序博客网 时间:2024/05/16 18:28

为什么使用Docker

  • 一次搭建开发环境

    搭好一次,到处拉取

  • 统一的测试环境

    不会因为机器不同、系统不同、安装软件不同,造成测试环境差异

  • 直接提供部署方案

    直接提供部署编排脚本,指导运维开服

  • 专注于服务开发

    不要再关注如何负载均衡、如何提供连续服务 等等一系列生产环境中的问题

为什么使用Docker Swarm,而不是 Kubernetes

这里列举下Swarm的优点

  • Docker官方维护,一直在完善
  • 简单,不需要额外工具 (仅需要安装Docker,Swarm、Compose等所有相关均集成进Docker)
  • 简单,命令与Docker命令类似

Docker Swarm 介绍

目前最新的 Swarm (docker 1.13.0 以上版本),提供了以下功能:

  • Swarm集群

    • 包含2种节点:manager(管理节点)和worker(容器节点)
    • manager节点去中心化,即保证Swarm有效
    • 跨主机,在Swarm前,用官方手段,Docker容器只能开单机
  • 负载均衡

    • 容器节点上内置代理,进行负载均衡
    • 容器节点上即使不开容器实例,也可以被正常访问
  • 服务发现

    • 内置生成Swarm集群网络
    • 内置生成DNS服务
  • 服务扩缩

    • 可以通过命令 增加或减少容器数量
  • 滚动更新

    • 按照时间间隔依次更新容器
    • 更新期间某容器更新失败,则自动回滚
  • 维护集群状态

    • 实时维护集群到配置所期望的状态
    • 容器失效重开
    • 容器节点故障转移

Docker Swarm 安装介绍

  • 让Swarm管理的机器(物理机、虚拟机、云) 均要安装Docker

  • Docker版本要求docker 1.13.0及以上

  • 在作为manager的节点上执行

    node_ip=192.168.93.183docker swarm init --advertise-addr=$node_ip

    则生成一个管理节点,和集群token

  • 其他节点通过执行以下语句加入Swarm集群

    docker swarm join --token=?
  • 如何查询token,可以在管理节点上执行以下语句

    docker swarm join-token workerdocker swarm join-token manager

Docker Swarm 常见命令介绍

  • docker service 系列

    • docker service ls
    • docker service ps
    • 其他见 docker service help
  • docker node 系列

    • docker node ls
    • 其他见 docker node help
  • docker volume 系列

    • docker volume ls
    • 其他见 docker volume help

docker-stack.yml 容器部署编排脚本

有了 Swarm集群后,上面还没有任何容器在运行。Docker通过docker-stack.yml来定义容器部署方式。并实时监视集群状态,使其达到docker-stack.yml中所描述的状态

目前 docker-stack.yml 版本为 v3.0。所有docker-stack.yml支持的格式及功能,官方文档中有详细介绍。文档地址如下:

  https://docs.docker.com/compose/compose-file/
阅读全文
0 0
原创粉丝点击