zoukankan      html  css  js  c++  java
  • 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 节点:

    [root@swarm1 ~]# 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 上查看各节点信息:

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

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

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

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

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

      1、创建实例

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

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

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

      [root@swarm1 ~]# docker service ps tomcattest #查看实例运行状态

      

       2、横向扩容/收缩

       [root@swarm1 ~]# docker service scale tomcattest=3

      #tomcattest服务增加为3个实例

      

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

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

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

      [root@swarm3 ~]# systemctl stop docker

      

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

      [root@swarm1 ~]# docker service ps tomcattest

      

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

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

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

    后话:

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

  • 相关阅读:
    Win7 IE11无法打开的可能解决办法
    s​q​l​ ​s​e​r​v​e​r​ ​2​0​0​0​登​录​名​与​数​据​库​用​户​名​的​关​联​问​题
    错误 0xc0202049: 数据流任务 1: 无法在只读列“ID”中插入数据
    清空SQL Server数据库中所有表数据的方法
    01-鼠标点击空白处实现层隐藏
    01-artDialog4.1.7常用整理
    ASP.NET MVC HtmlHelper用法大全
    随机生成十个数 填充数组
    字串加密、解密
    动手动脑、String类函数的使用说明
  • 原文地址:https://www.cnblogs.com/mybxy/p/11969747.html
Copyright © 2011-2022 走看看