zoukankan      html  css  js  c++  java
  • centos7下安装docker(20.docker swarm start)

              从主机的层面来看,docker swarm管理的是docker host集群。

    什么是集群?

        服务器集群由一组网络上相互连接的服务器组成,他们一起协同工作。

    一个集群和一堆服务器的显著区别是:

    集群能够像单个系统那样工作,同时提供高可用,负载均衡和并行处理。

    这样,部署应用的时候,我们只考虑需要多少的内存和CPU,而不是考虑会使用哪台服务器的内存和CPU。我们不应该关心应用部署在哪里,我们应该关心运行这些应用需要哪些资源,然后将它部署到集群,集群管理程序(比如:docker swarm)会搞定这些细节。

    集群整体容量的调整是通过集群中添加和删除主机节点实现的。但不管怎样的操作,集群始终还是一个整体

    从今天开始,我们将重点学习docker swarm,我们会创建docker swarm集群,部署应用,伸缩扩展应用,以及对应用执行滚动升级

    docker swarm Mode

    docker v1.12是一个非常重要的版本,Docker重新实现了集群编排方式。再此之前,提供集群功能的docker swarm是一个单独的软件,而且依赖外部数据库(比如:consul。etcd。zookeeper)

    从v1.12开始,docker swarm的功能已经完全与docker engine集成,要管理集群,只需要启动swarm mode。安装好docker ,swarm就已经在那里了,服务发现也已经在那里了(不需要安装consul等外部数据库)

    相比kubnetes,用docker swarm创建集群非常简单,不需要额外安装任何软件,也不需要做任何额外的配置。

    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执行编排任务。

    worker node接受并执行由manager node派发的任务。默认配置下manager node同事也是一个worker node,不过可以将其配置成manager-only node,让其专门负责编排和集群管理工作。work node会定期向manager node报告自己的状态和他正在执行的任务的状态,这样manager就可以维护整个集群的状态。

    service

    service定义了worker node上要执行的任务。

    swarm主要编排任务就是保证service处于期望的状态。

     举个service例子:

    在swarm中启动一个http服务,使用的镜像是httpd:latest,副本数为3

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

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

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

  • 相关阅读:
    基于KNN的newsgroup 18828文本分类器的Python实现
    基于Bayes和KNN的newsgroup 18828文本分类器的Python实现
    C++笔试题
    一号店笔试题
    最长递增子序列
    雅虎2015校招--研究工程师
    百度2013校园招聘笔试题(答案整理) – 机器学习/数据挖掘工程师
    windows下Python shell代码自动补全
    windows下scrapy安装
    实验四
  • 原文地址:https://www.cnblogs.com/lkun/p/8031747.html
Copyright © 2011-2022 走看看