精华内容
下载资源
问答
  • Swarm

    2020-08-01 00:15:36
    在第一台机器上 初始化节点 docker swarm init docker swarm join加入一个节点 获取令牌,两种 docker swarm join-token manager docker swarm join-token worker 可以生成manager和worker的令牌 生成主节点...
    1. 4台机器安装docker
    2. 同步命令,方便哇

    工作模式:

    在这里插入图片描述
    搭建集群:
    现在网络里面很干净:
    在这里插入图片描述

    帮助文档:
    在这里插入图片描述

    主要是 --advertise-addr string
    在这里插入图片描述

    1. 在第一台机器上 初始化节点 docker swarm init
      在这里插入图片描述
      docker swarm join加入一个节点
    获取令牌,两种
    docker swarm join-token manager
    docker swarm join-token worker
    

    可以生成manager和worker的令牌

    1. 生成主节点init
    2. 加入(manager, worker)

    Tips:
    systemctl stop docker 停止docker
    systemctl start docker 开启docker
    rft协议:(高可用)
    (一个节点挂了,服务还能不能用)
    保证大多数节点存活才可以用:高可用。只要>1 ,要是集群,>3

    实验:将docker停止

    1. worker 是工作的

    体会:
    弹性,扩缩容
    以后告别 docker run
    docker-compose up 启动一个项目,单机
    集群:swarm docker service

    容器 => 服务!
    容器 => 服务 => 副本!
    redis服务 => 10个副本!(同时开启10个redis容器)

    体验:
    创建服务、动态扩展服务、动态更新服务

    体验:

    灰度发布:金丝雀发布

    docker service create 
    

    服务:动态扩缩容

    docker service create -p 8888:80 --name my-nginx nginx

    在这里插入图片描述

    在这里插入图片描述
    扩展为3个:
    在这里插入图片描述
    恢复1个
    在这里插入图片描述
    服务,集群中任意的节点都可以访问,服务可以有多个副本动态扩缩容实现高可用!
    弹性,扩缩容!
    10台!1000台!卖给别人,虚拟化!
    服务的高可用,任何企业,云!
    k8s!云原生应用

    scale:
    在这里插入图片描述
    在这里插入图片描述

    概念总结:
    swarm
    集群的管理和编号,docker可以初始化一个swarm集群,其他节点可以加入(管理,工作者)

    Node
    就是一个docker节点,多个节点组成了一个网络集群(管理,工作者)

    Service 核心
    任务,可以在管理节点和工作节点来运行。用户访问
    在这里插入图片描述

    Task
    容器内的命令

    命令->管理(manager)->api->调度->工作节点(创建Task容器,维护创建!)

    • k8s

    拓展:网络模式:”PublishMode“:“ingress”

    Swarm:
    - Overlay:将机器加入到Overlay之后,机器之间ping通
    - ingress:特殊的Overlay网络!负载均衡的功能!
    -

    Docker Stack
    docker-compose 单机部署项目!
    Docker Stack部署,集群部署

    # 单机
    docker-compose up -d wordpress.yaml
    # 集群
    docker stack deploy wordpress.yaml
    

    Docker Secret
    在这里插入图片描述
    Docker Config
    在这里插入图片描述
    学习方式:
    网上找案例跑起来试试,查看命令、帮助文档,官网

    拓展到K8S
    云应用
    云原生时代
    10台机器以上,优先考虑K8S

    Go语言!必须掌握!
    并发语言!

    电商网站
    在线教育平台

    下载 => 配置计科

    补充几张图:
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • swarm

    2019-09-22 00:12:02
    docker swarm init --advertise-addr <manage ip>docker swarm join-token worker/managerdocker service create --name redis --mode global --publish 6379:6379 redisdocker service rm reidsdocker n...

    docker swarm init --advertise-addr <manage ip>
    docker swarm join-token worker/manager
    docker service create --name redis --mode global --publish 6379:6379 redis
    docker service rm reids
    docker node ls
    docker service ls

    转载于:https://www.cnblogs.com/anjunact/p/6751620.html

    展开全文
  • SWARM白皮书2.docx

    2021-06-28 15:38:02
    swarm
  • SWARM白皮书1.docx

    2021-06-28 15:37:18
    swarm
  • swarm镜像

    2015-10-28 00:55:49
    swarm 镜像
  • Swarm intelligence

    2016-09-12 11:27:07
    Swarm intelligence book
  • Swarm 集群管理

    2021-01-20 16:26:36
    Swarm 集群管理 简介 Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm...
  • DCOS Swarm子命令 基本DCOS子命令 设置 确保您满足安装要求 为dcos swarm cli复制git repo: git clone git@github.com:mesosphere/dcos-swarm.git 将目录更改为repo目录: cd dcos-swarm 确保您已安装virtualenv...
  • 码头工人 通过SMLee 编排 服务器编排的简单定义可以看作是“对多个服务器... Docker Swarm的构建成本比其他工具便宜,并且易于使用或管理,因此我尝试使用Swarm。 什么是Docker Swarm? 将Docker主机池转换为单个虚拟
  • Swarm简单介绍

    2021-02-25 01:10:23
    Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。Swarm和Kubernetes比较类似,但是更加轻,具有的功能也较...
  • Docker三剑客——Swarm

    千次阅读 2018-05-28 23:37:13
    swarm

    一、Swarm简介

    在Docker的官方文档当中,我们可以看到在Docker 1.12及更高版本中,Swarm模式与Docker Engine集成。那么Dokcer Swarm到底是个什么?

    Docker Swarm是Docker官方的三剑客项目之一,提供Docker容器集群服务,是Docker官方对容器云生态镜像支持的核心方案。它是Docker公司推出的官方容器集群平台,基于Go语言实现,代码在https://github.com/docker/swarm

    Docker Swarm是原生支持Docker集群管理的工具。它可以把多个Docker主机组成的系统转换为单一的虚拟Docker主机,使得容器可以组成跨主机的子网网络。

    在很多台机器上部署Docker,组成一个Docker集群,并把整个集群的资源抽象成资源池,使用者部署Docker应用的时候,只需要将应用交给Swarm,Swarm会根据整个集群资源的使用情况来分配资源给部署的Docker应用,可以将这个集群的资源利用率达到最大。

    使用Docker CLI创建群集,将应用程序服务部署到群集,并管理群体行为。其主要的目的就是更好的帮助用户管理多个Docker Engine,方便用户使用,像使用Docker Engine一样使用容器集群服务。

    二、关于集群

    1、关于集群

    前面的简介里,我们提到了集群的概念。那么这里我们来说一下,什么是集群?

     集群是一组协同工作的服务实体(可理解为服务器),用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就像是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:

    • 可扩展性——集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。

    • 高可用性——集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。

    2、Docker集群服务概念:

    在深入学习之前,我们需要明确几个概念:

    - Swarm

    Swarm运行 Docker Engine 的多个主机组成的集群。

    从 v1.12 开始,集群管理和编排功能已经集成进 Docker Engine。当 Docker Engine 初始化了一个Swarm或者加入到一个存在的Swarm时,它就启动了 Swarm Mode。

    没启动Swarm Mode时,Docker执行的是容器命令;运行Swarm Mode后,Docker增加了编排service的能力。

    Docker允许在同一个Docker主机上既运行Swarm Service,又运行单独的容器。

    - node

    Swarm中的每个Docker Engine都是一个node,有两种类型的 node:manager 和worker。

    为了向Swarm中部署应用,我们需要在manager node上执行部署命令,manager node会将部署任务拆解并分配给一个或多个worker node完成部署。

    manager node负责执行编排和集群管理工作,保持并维护Swarm处于期望的状态。Swarm中如果有多个manager node,它们会自动协商并选举出一个leader 执行编排任务。

    woker node接受并执行由manager node派发的任务。默认配置下manager node同时也是一个worker node,不过可以将其配置成manager-only node,让其专职负责编排和集群管理工作。

    work node会定期向manager node报告自己的状态和它正在执行的任务的状态,这样manager就可以维护整个集群的状态。

    - service

    service定义了worker node上要执行的任务。swarm的主要编排任务就是保证 service处于期望的状态下。

    举一个service的例子:在swarm中启动一个nginx服务,使用的镜像是 nginx:latest,副本数为3。

    manager node负责创建这service,经过分析知道需要启动3个nginx容器,根据当前各worker node的状态将运行容器的任务分配下去,比如worker1上运行两个容器,worker2上运行一个容器。

    运行了一段时间,worker2突然宕机了,manager监控到这个故障,于是立即在 worker3上启动了一个新的nginx容器。

    这样就保证了service处于期望的三个副本状态。

    总结一下:
    swarm以节点(node)的方式组织集群(cluster);同时每个节点上面可以部署一个或者多个服务(service),每个服务又可以包括一个或者多个容器(container)

    Swarm的架构图如下:
    Swarm

    三、Swarm实战

    因为现在新版本的Docker已经结合了Swarm,所以在这里主要结合的是新版本功能的Docker的演示。

    1、Swarm基本命令


    docker swarm init 创建Swarm,同时让swarm-manager 成为 manager node。
    执行该命令后,显示添加worker node和manager node 需要执行的命令。
    –advertise-addr 指定与其他node通信的地址。

    docker swarm init --advertise-addr [ip]

    查看swarm worker的连接令牌

    docker swarm join-token worker

    查看swarm manager的连接令牌

    docker swarm join-token manager

    加入docker swarm集群,这里的token和ip更换为具体需求下的即可。
    如果忘记可以用docker swarm join-token worker查看。

    docker swarm join --token SWMTKN-1-1next4gw4m7yx3j6q1f4z4ooimvp3pc1ahsnnwifu5w1h6b247-f10wphfpnyyunzphr1qp4kew1 192.168.1.245:2377

    查看集群中的节点

    docker node ls

    将节点升级为manager

    docker node promote work-node1

    将节点降级为worker

    docker node demote work-node1

    只能删除down状态的节点,如何要删除active状态的,需要加上–force

    docker node rm --force worker-manager

    查看服务列表

    docker service ls

    查看具体服务信息,这里是web服务

    docker service ps web

    创建一个名称为web,副本为3,开放端口为80的nginx服务

    docker service create --name web --replicas 3 -p 80:80 nginx

    删除一个服务

    docker service rm web

    查看集群中节点信息

    docker node inspect work-node1 --pretty

    查看服务的详细信息

    docker service inspect --pretty <SERVICE-ID>/<SERVICE-NAME>

    调度程序不会将新任务分配给节点。
    调度程序关闭任何现有任务并在可用节点上安排它们。

    docker node update --availability drain work-node1

    调度程序可以将任务分配给节点

    docker node update --availability active work-node1

    调度程序不向节点分配新任务,但是现有任务仍然保持运行

    docker node update --availability pause work-node1

    为指定的服务删除一个开放端口

    docker service update --publish-rm 8080:80 web

    为指定的服务添加一个开放端口

    docker service update --publish-add 8080:80 web

    回滚至之前版本

    docker service update --rollback mysql

    扩展或缩放服务中容器的数量

    docker service scale web=5

    以上是一些常用的docker swarm命令,接下来我们就进入实战。

    2、Swarm实战

    A.创建基本的集群环境

    接下来会创建三个节点的Swarm集群。如下图:

    swarm集群

    swarm-manager 是 manager node,swarm-worker1 和 swarm-worker2 是 worker node,可以认为是worker-node1、worker-node2节点。
    swarm-manager、swarm-worker1和swarm-worker2均为Linux系统服务器,系统为Ubuntu 16.04。
    先在swarm-manager使用docker swarm init命令

    docker swarm init --advertise-addr 39.108.119.87

    这里的ip为具体本机服务ip。
    初始化为swarm-manager节点,如下:

    init

    使用docker node ls 我们可以查看到创建的节点:
    node
    然后我们在swarm-worker1、和swarm-worker2服务器下面分别输入刚才初始化成功后的提示消息,比如在swarm-worker2节点下输入下面命令:

    docker swarm join --token SWMTKN-1-1nkutg1v1bwjvdsy10xgocw1hftusf51xomjj735fd9d08s0ju-5pizwmfjtttcpvaht8vsnv3s1 39.108.119.87:2377

    我们可以看到提示:
    tip

    This node joined a swarm as a worker. 提示我们添加节点成功。

    当我们去swarm-manager节点进行查看时可以发现,出现了三个节点,其中的两个就是刚才我们添加的。

    nodes

    当然我们也可以删除某个节点,使用docker node rm , 这个只能删除down状态的节点,如何要删除active状态的。需要加上–force。

    docker node rm --force sprkw7t8irlb4l3dtvwszpdjj

    删除节点
    至此,三节点的swarm集群就已经搭建好了,操作还是相当简单的。

    B.服务创建及伸缩

    在上面我们搭建好了集群环境。现在我们在manager节点上部署一个基本的nginx服务,服务数量为(副本数)2个,公开指定端口是8080映射容器80,使用nginx镜像。

    docker service create --replicas 2 --name nginx --publish 8080:80  nginx

    创建服务

    通过docker service ls可以查看当前swarm中的服务。
    启动服务
    可以看到服务正在启动过程当中。

    稍等一会我们再去查看服务,并使用docker service ps nginx查看具体的nginx服务,如下:
    nginx服务

    可以发现,nginx服务已经启动起来了,并且在不同的节点里面运行起来了。

    这里主要在swarm-manager和swarm-worker1里面分别启动了一个容器。

    我们知道平时通常会运行多个实例。这样可以负载均衡,同时也能实现服务器高可用。

    比如现在我们想把nginx服务数目提升到5个,提高可用性,就可以使用如下命令:

    docker service scale nginx=5

    scale

    我们可以查看到启动了5个nginx服务,并且分布在不同的节点,从中可以看到swarm-manager节点里启动了1个,swarm-worker1和swarm-worker2分别启动了2个节点。

    我们可以去相应节点服务器,通过docker ps -a 查看,比如:swarm-manager节点,只有一个容器运行:
    manager

    swarm-worker1节点,有两个容器运行:
    node1

    swarm-worker2节点,有两个容器运行:
    node2

    具体结果如下:
    swarm

    我们知道默认配置下manager node 也是 worker node,所以 swarm-manager 上也运行了副本。如果不希望在 manager 上运行 service,可以进行排空,就是将该节点上的容器排空。命令如下:

    docker node update --availability drain [NODE-ID]

    执行过后,我们再查看具体服务情况如下:
    update

    我们可以看到在swarm-manager上的容器nginx状态是shutdown了,然后在swarm-worker2上启动了一个nginx服务。

    查看节点状态,docker node ls可以发现manager上的状态为drain。

    drain

    当然如果我们要减少服务数目,直接把scale的数据设置比当前启动的服务少即可。比如减少服务数到3个,如下命令:

    docker service scale nginx=3

    结果如下,shutdown为先前排除manager节点里的容器,可以看到只有三个运行的服务。
    scale3

    最后集群服务情况如下:
    swarm

    C.服务之间的通信

    比如我们在创建多个服务之间要通信,某个服务不要求与外部通信(比如数据库等)。这里就用到了服务发现。

    我们就可以使用建立overlay网络,部署 service 到 overlay网络上去。

    比如新建dev网络环境:

    docker network create --driver overlay dev

    dev网络
    然后我们新建服务,就可以让服务部署在该网络上。比如下面我们新建nginx版本1.12.2的服务,副本为2,开放80端口,部署到我们新建的dev网络上。

    docker service create --replicas 2 --name nginx-dev --publish 9090:80  --network dev nginx:1.12.2

    nginx
    我们可以看到服务正在启动,我们可以在不同的节点下看到dev网络有该容器,而相同网络下的服务就可以进行通信,ip直接是可以访问到的。

    D.服务镜像升级和回滚

    在前面我们部署了多个副本的服务,如果我们要升级某个服务该怎么办,如下,我们对刚刚dev网络环境下的nginx:1.12.2进行升级,升级到1.13.12版本。使用如下命令:

    docker service update --image nginx:1.13.12 nginx-dev

    可以看到服务状态,新版本运行起来了,旧版本被停止了。
    升级

    Swarm 将按照如下步骤执行滚动更新:

    • 停止第一个副本。
    • 调度任务,选择 worker node。
    • 在 worker 上用新的镜像启动副本。
    • 如果副本(容器)运行成功,继续更新下一个副本;如果失败,暂停整个更新过程。

    默认配置下,Swarm 一次只更新一个副本,并且两个副本之间没有等待时间。我们可以通过 –update-parallelism 设置并行更新的副本数目,通过 –update-delay 指定滚动更新的间隔时间。

    比如执行如下命令:

    docker service update --replicas 6 --update-parallelism 2 --update-delay 1m30s nginx-dev

    service 增加到六个副本,每次更新两个副本,间隔时间一分半钟。

    Swarm 还有个回滚功能,如果更新后效果不理想,可以通过 –rollback 快速恢复到更新之前的状态。

    docker service update --rollback nginx-dev

    rollback

    可以看到服务已经回滚到先前的版本。到此docker中swarm的简单使用就到此结束,后面再会介绍Docker三剑客的其他内容。

    参考

    展开全文
  • 用于Docker swarm入门的示例3节点Vagrant设置 观看整个演示 安装 从安装Vagrant Binary 使用命令vagrant box add ubuntu/trusty64从vagrant下载ubuntu / trusty64 vagrant box add ubuntu/trusty64 克隆此仓库 git ...
  • docker swarm集群

    2019-02-27 10:30:49
    docker swarm集群设置: 讲解了如何创建docker swarm 集群 怎样加入集群,退出集群等
  • vagrant-docker-swarm:Docker Swarm的无家可归游乐场
  • ansible-docker-swarm:使用Ansible初始化Docker Swarm
  • 部署Swarm - Deploy Swarm

    千次阅读 2016-08-02 18:37:14
    部署swarm

    参考文档:https://docs.docker.com/swarm/install-manual/

    使用的部署环境

    参考文档中是要把Swarm部署到AWS的EC2上的,没有这样的条件,所以选择在本地建立多个虚机机来搭建。
    操作系统选择centos7,共建立了5个虚拟机, 为了简单起见,均使用root用户做操作。

    [root@mamager1 ~]# cat /etc/hosts
    192.168.221.136 manager0
    192.168.221.137 manager1
    192.168.221.138 consul0
    192.168.221.139 node0
    192.168.221.140 node1

    manager0和manager1是swarm的管理结点,两个节点用来做高可用。
    consul0节点是服务发现结点,部署了consul
    node0和node1是资源结点

    5 个节点都事先安装好了docker engine 1.12

    安装docker: curl -sSL https://get.docker.com/ | sh
    启动docker: docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

    开始部署

    配置好以上环境后,可以直接进入参考文档的 Step 4 了

    Step 4. Set up a discovery backend

    这一步是用来创建服务发现功能,采用了consul作为服务发现服务程序,也可以选择zookeeper,etcd。

    安装consul是比较简单的,直接运行一个容器就好了。

    在consul0结点上运行一下命令:

    docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap
    

    Step 5. Create Swarm cluster

    Swarm的安装和运行也是比较简单的,同样是使用容器运行。

    在manager0结点上运行以下命令
    docker run -d -p 4000:4000 swarm manage -H :4000 –replication –advertise 192.168.221.136:4000 consul://192.168.221.138:8500

    在manager1结点上运行以下命令
    docker run -d -p 4000:4000 swarm manage -H :4000 –replication –advertise 192.168.221.137:4000 consul://192.168.221.138:8500

    在node0结点上运行以下命令
    docker run -d swarm join –advertise=192.168.221.139:2375 consul://192.168.221.138:8500

    在node1结点上运行以下命令
    docker run -d swarm join –advertise=192.168.221.140:2375 consul://192.168.221.138:8500

    试用一下

    在manager0上执行命令: docker -H :4000 info

    [root@localhost ~]# docker -H :4000 info
    Containers: 2
     Running: 2
     Paused: 0
     Stopped: 0
    Images: 4
    Server Version: swarm/1.2.4
    Role: replica
    Primary: 192.168.221.137:4000
    Strategy: spread
    Filters: health, port, containerslots, dependency, affinity, constraint
    Nodes: 2
     node0: 192.168.221.139:2375
      └ ID: 6UEQ:FE4C:QYPC:7EFT:CXYZ:EPDF:OYWD:5L5U:QAB2:32EW:3GYS:GZAR
      └ Status: Healthy
      └ Containers: 1 (1 Running, 0 Paused, 0 Stopped)
      └ Reserved CPUs: 0 / 4
      └ Reserved Memory: 0 B / 1.003 GiB
      └ Labels: kernelversion=3.10.0-327.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
      └ UpdatedAt: 2016-08-02T10:10:57Z
      └ ServerVersion: 1.12.0
     node1: 192.168.221.140:2375
      └ ID: RTT2:OFYE:MWP5:GVAY:QUTG:QHZU:3AXA:OILX:UG5K:D3RM:6XJE:QX2Z
      └ Status: Healthy
      └ Containers: 1 (1 Running, 0 Paused, 0 Stopped)
      └ Reserved CPUs: 0 / 4
      └ Reserved Memory: 0 B / 1.003 GiB
      └ Labels: kernelversion=3.10.0-327.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
      └ UpdatedAt: 2016-08-02T10:10:39Z
      └ ServerVersion: 1.12.0
    Plugins:
     Volume: 
     Network: 
    Swarm: 
     NodeID: 
     Is Manager: false
     Node Address: 
    Security Options:
    Kernel Version: 3.10.0-327.el7.x86_64
    Operating System: linux
    Architecture: amd64
    CPUs: 8
    Total Memory: 2.005 GiB
    Name: cfb6647dfc11
    Docker Root Dir: 
    Debug Mode (client): false
    Debug Mode (server): false
    WARNING: No kernel memory limit support

    在manager1上执行命令: docker -H :4000 info

    [root@mamager1 ~]# docker -H :4000 info
    Containers: 2
     Running: 2
     Paused: 0
     Stopped: 0
    Images: 4
    Server Version: swarm/1.2.4
    Role: primary
    Strategy: spread
    Filters: health, port, containerslots, dependency, affinity, constraint
    Nodes: 2
     node0: 192.168.221.139:2375
      └ ID: 6UEQ:FE4C:QYPC:7EFT:CXYZ:EPDF:OYWD:5L5U:QAB2:32EW:3GYS:GZAR
      └ Status: Healthy
      └ Containers: 1 (1 Running, 0 Paused, 0 Stopped)
      └ Reserved CPUs: 0 / 4
      └ Reserved Memory: 0 B / 1.003 GiB
      └ Labels: kernelversion=3.10.0-327.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
      └ UpdatedAt: 2016-08-02T10:11:33Z
      └ ServerVersion: 1.12.0
     node1: 192.168.221.140:2375
      └ ID: RTT2:OFYE:MWP5:GVAY:QUTG:QHZU:3AXA:OILX:UG5K:D3RM:6XJE:QX2Z
      └ Status: Healthy
      └ Containers: 1 (1 Running, 0 Paused, 0 Stopped)
      └ Reserved CPUs: 0 / 4
      └ Reserved Memory: 0 B / 1.003 GiB
      └ Labels: kernelversion=3.10.0-327.el7.x86_64, operatingsystem=CentOS Linux 7 (Core), storagedriver=devicemapper
      └ UpdatedAt: 2016-08-02T10:11:43Z
      └ ServerVersion: 1.12.0
    Plugins:
     Volume: 
     Network: 
    Swarm: 
     NodeID: 
     Is Manager: false
     Node Address: 
    Security Options:
    Kernel Version: 3.10.0-327.el7.x86_64
    Operating System: linux
    Architecture: amd64
    CPUs: 8
    Total Memory: 2.005 GiB
    Name: 558a052d79fa
    Docker Root Dir: 
    Debug Mode (client): false
    Debug Mode (server): false
    WARNING: No kernel memory limit support

    根据Role,可以看出来,manager1是主,manager0是从,已经有两个node加入进来了,分别是node0: 192.168.221.139:2375node1: 192.168.221.140:2375

    在manager1上执行以下命令,查看正在运行的容器

    [root@mamager1 ~]# docker -H :4000 ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
    fa5f096d9aa4        swarm               "/swarm join --advert"   47 minutes ago      Up 47 minutes       2375/tcp            node1/infallible_montalcini
    7ca9201566b1        swarm               "/swarm join --advert"   About an hour ago   Up About an hour    2375/tcp            node0/compassionate_shannon
    

    在manager1上执行以下命令,创建一个容器:

    [root@mamager1 ~]# docker -H :4000 run hello-world
    [root@mamager1 ~]# docker -H :4000 ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS               NAMES
    efecac9a30e7        hello-world         "/hello"                 6 seconds ago       Exited (0) 5 seconds ago                       node0/determined_hoover
    fa5f096d9aa4        swarm               "/swarm join --advert"   49 minutes ago      Up 49 minutes              2375/tcp            node1/infallible_montalcini
    7ca9201566b1        swarm               "/swarm join --advert"   About an hour ago   Up About an hour           2375/tcp            node0/compassionate_shannon
    
    

    可以看到 hello-world已经运行过了,但是hello-world在运行后就退出了,所以需要用 ps -a 才能看到。

    高可用

    参考文档的第7步是测试Swarm管理结点的高可用,挂掉主节点,从结点会切换为主

    Step 7. Test Swarm failover

    结论是可以用的,就不贴过程了,干掉manager1上面的swarm容器后,在mangager0上执行 docker -H :4000 info, 可以看到manager0已经变为主了。

    踩过的坑

    在部署的过程中,也是遇到了一些问题的,都不是大问题,很快就能解决。

    • ip地址: 发现不了结点
      因为刚开始的时候,我已经把host和ip信息写入/etc/hosts文件里面了,所以启动swarm manager和swarm ndoe的使用用的是机器名称而不是直接写的IP,这样引起的问题是,这些参数会带入到swarm的容器中,容器中是没有/etc/hosts文件的,所以就会找不到相应的服务,导致所有服务都不能正常启动

    • 防火墙: no route to host
      没有配置防火墙,导致node结点的2375端口不能被manager结点访问,所以修改了一下防火墙策略

    firewall-cmd --zone=public --add-port=2375/tcp --permanent
    firewall-cmd --zone=dmz --add-port=2375/tcp --permanent
    firewall-cmd --reload
    
    • docker id: prending
      我用的5个虚拟机都是直接从一个basic复制过来的,basic已经安装好docker了,所以导致了所有docker id 都是相同的。使用docker info可以看到每个docker的ID值。 结果就是,所有的结点的程序都起来了,但是从 manager1结点看,node只有一个是Healthy的,另外一个的状态一直是Prending。解决这个问题也比较简单,删除/etc/docker/key.json,重启启动docker engine和node结点上运行的swarm join容器就好了
    展开全文
  • Docker Swarm

    2021-05-07 10:25:42
    Docker Swarm 初始化节点:docker swarm init 加入一个节点:docker swarm join 获取令牌 docker swarm join-token manager docker swarm join-token worker #初始化节点:docker swarm init [root@VM-16-11-centos ~]...
  • docker swarm

    千次阅读 2020-05-12 21:00:07
    docker swarm是docker官方提供的一套容器编排系统。它的架构如下: 1. swarm节点 swarm是一系列节点的集合,而节点可以是一台裸机或者一台虚拟机。一个节点能扮演一个或者两个角色,manager或者worker。 1.1 ...
  • Swarm初探

    2019-04-18 11:30:12
    架构分析 基本架构 如上图所示,Swarm Node表示...其中,最开始创建Swarm集群的时候,Swarm Manager便是集群中的第一个Swarm Node。在所有的Node中,又根据其职能划分为Manager Node和Worker Node。 manager nod...
  • Output swarm stability and stabilization for high-order linear swarm systems
  • 允许在docker swarm中启动容器的docker映像,其中选项通常在swarm模式下不可用 这个怎么运作 该映像使用docker-compose启动一个新项目(请参阅LAUNCH_PROJECT_NAME )。 您可以使用环境变量来配置内部启动的服务,...
  • ~/Swarm_ws cd ~/Swarm_ws 下载本仓库及子模块 git clone https://github.com/KennethYangle/Swarm_ws.git mv Swarm_ws src cd src git submodule init git submodule update 编译 cd ~/Swarm_ws catkin_make 刷新...
  • 这是OpenFaaS的Docker Swarm提供程序。 OpenFaaS的第一个规范实现与Docker Swarm紧密结合。 该存储库旨在将两者分离,以使所有提供者都是同构且对称的。 部署方式 要部署faas-swarm, deploy_stack.sh在主使用...
  • swarm集群

    2019-03-09 11:45:11
    swarm集群 swarm是一组运行Docker并且已加入集群中的机器。执行此操作后,可以继续运行已经使用的Docker命令,但现在他们在集群上由swarm管理节点执行。swarm中的机器可以为物理或虚拟机。加入swarm后,可以将它们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,556
精华内容 13,022
关键字:

swarm