• 云计算核心技术Docker教程: Docker Swarm 使用

    2020-07-15 17:34:45 [db:来源] [db:作者] 收藏

  Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。

  如下图所示,swarm 集群由管理节点(manager)和工作节点(work node)构成。

  swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。

  work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。

  以下示例,均以 Docker Machine 和 virtualbox 进行介绍,确保你的主机已安装 virtualbox。

  创建 swarm 集群管理节点(manager),首先我们先创建 docker 机器:

  $ docker-machine create -d virtualbox swarm-manager

  初始化 swarm 集群,进行初始化的这台机器,就是集群的管理节点。

  $ docker-machine ssh swarm-manager

  $ docker swarm init --advertise-addr 192.168.99.107 #这里的 IP 为创建机器时分配的 ip。

  需要把以下这行复制出来,在增加工作节点时会用到:

  docker swarm join --token SWMTKN-1-4oogo9qziq768dma0uh3j0z0m5twlm10iynvz7ixza96k6jh9p-ajkb6w7qd06y1e33yrgko64sk 192.168.99.107:2377

  我们再直接创建好俩台机器,swarm-worker1 和 swarm-worker2 。

  分别进入两个机器里,指定添加至上一步中创建的集群,这里会用到上一步复制的内容。

  以上数据输出说明已经添加成功。

  进入管理节点,执行:docker info 可以查看当前集群的信息。

  $ docker-machine ssh swarm-manager

  $ docker info

  在一个工作节点上创建一个名为 helloworld 的服务,这里是随机指派给一个工作节点:

  跟集群管理有关的任何操作,都是在管理节点上操作的。

  docker@swarm-manager:~$ docker service create --replicas 1 --name helloworld alpine ping docker.com

  查看 helloworld 服务运行在哪个节点上,可以看到目前是在 swarm-worker1 节点:

  docker@swarm-manager:~$ docker service ps helloworld

  查看 helloworld 部署的具体信息:

  docker@swarm-manager:~$ docker service inspect --pretty helloworld

  我们将上述的 helloworld 服务扩展到俩个节点。

  docker@swarm-manager:~$ docker service scale helloworld=2

  可以看到已经从一个节点,扩展到两个节点。

  删除服务

  docker@swarm-manager:~$ docker service scale helloworld=2

  使用滚动升级服务以下实例,我们将介绍 redis 版本如何滚动升级至更高版本。

  先创建一个 3.0.6 版本的 redis。

  docker@swarm-manager:~$ docker service create --replicas 1 --name redis --update-delay 10s redis:3.0.6

  滚动升级 redis 。

  docker@swarm-manager:~$ docker service update --image redis:3.0.7 redis

  停止某个节点接收新的任务:

  docker@swarm-manager:$ docker node update --availability drain swarm-worker1

  swarm-worker1 状态变为 Drain。不会影响到集群的服务,只是 swarm-worker1 节点不再接收新的任务,集群的负载能力有所下降。

  可以通过以下命令重新激活节点:

  docker@swarm-manager:~$ docker node update --availability active swarm-worker1

相关阅读

本文云计算核心技术Docker教程: Docker Swarm 使用由FX112财经网 首发,欢迎转载,转载请带上本文链接。
免责声明:FX112财经网(https://www.942fx.com)发布的所有信息,并不代表本站赞同其观 点和对其真实性负责,投资者据此操作,风险请自担。部分内容文章及图 片来自互联网或自媒体,版权归属于原作者,不保证该信息(包括但不限 于文字、图片、图表及数据)的准确性、真实性、完整性、有效性、及时 性、原创性等,如无意侵犯媒体或个人知识产权,请联系我们或致函告之 ,本站将在第一时间处理。关注FX112财经网,获取最优质的财经报道! 分享到: 新浪微博 微信

扫描左侧二维码
添加小编微信加入财经交流群