Docker Swarm 横向扩容/收缩简单使用

  Swarm 是 Docker 官方提供的一款集群管理工具,其主要作用是把若干台 Docker 主机抽象为一个整体,并且通过一个入口统一管理这些 Docker 主机上的各种 Docker 资源。 Swarm 和 Kubernetes 比较类似,但是更加轻,具有的功能也较 kubernetes 更少一些。

  Swarm 横向扩容准备服务器:

  swarm1(master):192.168.75.191

  swarm2(node1):192.168.75.192

  swarm3(node2):192.168.75.193

注:docker 1.12 版本后都自带 swarm 命令,无需安装

一、启动集群

在 swarm1 上启动集群,即 swarm1 为 master 节点:

[[email protected] ~]# docker swarm init --listen-addr 192.168.75.191:1234

#  --listen-addr 集群暴漏给外界调用的 HTTPAPI 的 socket 地址, IP 为本机 ip ,端口可自定义

上述命令运行成功会生成如下信息,此命令用于节点(被管理主机)加入集群

docker swarm join \

--token SWMTKN-1-6ampzvvbv1ul5y9omr3lvcrodetcdc3ukr9tn7158fcebc7olo-dx61lgmjyi0wwvx8pluizyucy \
    192.168.75.191:1234


在 swarm1 上查看各节点信息:

 [[email protected] ~]# docker node ls  #目前只有本机(管理主机 swarm1 )加入集群

二、分别将 swarm2 & swarm3 节点(被管理节点)加入集群

swarm1 (管理主机)再次查看节点信息,如下所示则集群添加成功

Swarm 集群以搭建完毕接下来进行横向扩容/收缩

三、测试:拉取tomcat镜像,横向扩容

  1、创建实例

  [swarm1 ~]# docker service create --replicas 1 --name tomcattest tomcat:latest

  # --replicas 始终运行实例数目

  # --name 运行服务名称,非容器名称

  [[email protected] ~]# docker service ps tomcattest #查看实例运行状态

  

  2、横向扩容/收缩

  [[email protected] ~]# docker service scale tomcattest=3

  #tomcattest服务增加为3个实例

  

  #实例自动在3台节点上分配,保证运行数量为3个实例,并且当某节点出现异常状态导致该节点上的服务宕机,

  将会在其余节点自动运行实例。始终保持实例数量为需求数量。

  3、停止 swarm3 节点,查看实例状态

  [[email protected] ~]# systemctl stop docker

  

  在 swarm1 上查看服务运行状态:

  [[email protected] ~]# docker service ps tomcattest

  

  #swarm3节点服务自动转移至swarm1服务器上,实例数仍为3.

  swarm3 上 tomcat 实例为宕机状态,且在 swarm1 上新生成实例,使 tomcat 实例总数仍为3

至此 Swarm 集群搭建以及简单都横向扩容及收缩都已经完成了。

后话:

  Swarm 虽为 Docker 官方提供的管理工具,但因 swarm 本身功能的不完善性,以及与其他插件的耦合度较低,所以现在基本都不建议使用 swarm 作为管理工具,现在较为流行的管理工具为 k8s ,这里就不多说了,大家有兴趣就自行百度查看吧,另 Rancher 是目前比较新兴的管理工具,使用 Rancher 可以来管理 k8s 集群。。。

原文地址:https://www.cnblogs.com/mybxy/p/11969747.html

时间: 2024-08-01 01:47:46

Docker Swarm 横向扩容/收缩简单使用的相关文章

自建docker swarm体验简单之美

之前用的阿里云容器服务,但由于acsrouting的路由错乱问题,被逼上自建docker swarm的梁山.今天尝试自己搭建docker swarm,竟然轻松搞定,简单的超乎想象. 以下是实际搭建操作步骤: 1. 创建集群 # docker swarm init --advertise-addr 10.251.242.231 Swarm initialized: current node (m9dfl7r9wo1e9jxsp3oe5du3x) is now a manager. To add a

docker-compose,docker-machine,docker swarm 的简单总结

1.docker-compose: 用来在单机上启动一组应用服务.这个服务中可能包含有很多应用,比如你的app服务,redis,mysql,等等. (1)我们需要先创建好docker-compose的yml文件.安装好docker,安装好docker-compose (2)在文件的目录直接运行docker-compose up  就可以直接把服务组启动起来了. 参考:https://docs.docker.com/compose/gettingstarted/ 2.docker-machine

Docker系列(十四):Docker Swarm集群

一.Swarm简介 Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源.Swarm和Kubernetes比较类似,但是更加轻便,具有的功能也较kubernetes更少一些. Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令.目前,Swarm 是 Do

从零开始,使用Docker Swarm部署集群教程

本文首先从Dockerfile创建了一个简单web镜像 然后将web镜像推送到了远程仓库,以备后面集群中不同机器自动下载 之后使用docker-compose.yml配置了一个应用 而后新建了2台虚拟机作为swarm节点,并部署应用的5个实例在这两台虚拟机上 最后还讲了如何如果更改集群配置.如何扩容您的集群和如重新发布您的应用 一.创建一个简单web镜像,并推送到docker仓库 1.创建Dockerfile 创建一个空目录, 然后CD到新目录,创建名为Dockerfile的文件,将以下内容复制

使用Docker Swarm搭建分布式爬虫集群

在爬虫开发过程中,你肯定遇到过需要把爬虫部署在多个服务器上面的情况.此时你是怎么操作的呢?逐一SSH登录每个服务器,使用git拉下代码,然后运行?代码修改了,于是又要一个服务器一个服务器登录上去依次更新? 有时候爬虫只需要在一个服务器上面运行,有时候需要在200个服务器上面运行.你是怎么快速切换的呢?一个服务器一个服务器登录上去开关?或者聪明一点,在Redis里面设置一个可以修改的标记,只有标记对应的服务器上面的爬虫运行? A爬虫已经在所有服务器上面部署了,现在又做了一个B爬虫,你是不是又得依次

Docker Swarm集群部署实战

基本概念: Swarm介绍:Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的虚拟的主机.Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockerclient in Go, docker_py,docker等)均可以直接与Swarm通信.Swarm几乎全部用Go语言来完成开发,Swarm0.2版本增加了一个新的策略来调度集群中的容器,使得在可

部署Docker swarm集群(一)

一.Docker swarm简介 Docker swarm与docker-compose一样,都是docker官方推出的docker容器的编排工具.但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合. Docker swarm:其作用就是把若干个Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各

Docker swarm搭建(1)

Docker swarm docker swarm集群:三剑客之一 一. Docker Swarm 的基本概念和原理 Docker Swarm 简介 Swarm是Docker公司推出的用来管理docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机.Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(docker client in Go, docker_py, docker等)均可以直接与Swarm通信.Swarm几乎全部

Docker Swarm和Kubernetes在大规模集群中的性能比较

Contents 这篇文章主要针对Docker Swarm和Kubernetes在大规模部署的条件下的3个问题展开讨论.在大规模部署下,它们的性能如何?它们是否可以被批量操作?需要采取何种措施来支持他们的大规模部署和运维? 我们需要使用侧重于用例的基准测试来对所有容器平台进行比较,这样采用者才可以做出正确的决策. 笔者从用户的角度建立了一套测评工具,用普通的方法测试Docker Swarm和Kubernetes.我只评估了通用的功能:容器的启动时间和容器罗列时间. Swarm的性能比Kubern