• 服务编排-以docker-swarm为例讲解


    服务编排:
    一、服务部署
    二、服务发现
    三、服务更新
    四、服务扩缩容

    正文

    一、服务部署

    https://www.cnblogs.com/andy9468/p/14348421.html
    docker命令有2中方式放到swarm manager上执行
    方式一:ssh登录到swarm manager节点上,输入docker命令。
    方式二:通过remote api将命令传输到swarm manager上。

    以方式二为例,描述swarm原理
    1、docker client上,输入命令docker service create...
    2、命令通过远程api传输到swarm manager节点上
    (1)docker Daemon接收到命令,并转交给Scheduler(调度器)
    (2)Scheduler中的子模块Filter(过滤器,用户可定制)负责过滤出集群中的节点,而子模块strategy(策略器,用户可定制)负责根据策略选择集群中合适的节点
    (3)最终由cluster通过远程api调用集群中的一个节点实现命令的执行
    (4)Node discovery是辅助功能,负责监控集群中各个节点的健康状态。

    过滤器——filter

    constraints,约束过滤器。根据操作系统、内核版本、存储等指标,结合label使用。
    affinity,亲和过滤器。根据容器之间的亲和程度。比如web容器和db容器,放到同一个节点。
    dependency,依赖过滤器。根据依赖关系,把容器放到一起。
    health filter,健康过滤器。把有问题的节点去掉。
    ports filter,端口过滤器。根据端口是否被占用,选择节点。

    策略器——strategy

    binpack,使用资源最多的节点,可以集中容器。
    spread,使用资源最少的节点,可以分散容器。
    random,随机选择节点。

    二、服务发现

    三种场景

    1、ingress的服务发现

    ingress的overlay网络,是基于物理网络之上的虚拟网络。使上层应用不再依赖物理网络,并且使下层物理网络保持不变。

    2、ingress+link的服务发现

    docker-compose(link处理依赖)和docker stack相似,都可以处理一组容器。
    link是解决容器之间的访问

    3、自定义网络的服务发现

    自定义网络也是overlay网络,是解决容器之间的访问,通过服务的名字。

    三、服务更新

    docker service update 。。。

    四、服务扩缩容

    docker service scale 。。。

  • 相关阅读:
    linux之卸载软件
    linux之挂载硬盘
    windows MySQL 5+ 服务手动安装
    深刻理解Python中的元类(metaclass)
    Python_cmd的各种实现方法及优劣(subprocess.Popen, os.system和commands.getstatusoutput)
    WSGI、flup、fastcgi、web.py的关系
    Windows下python环境变量配置
    External file changes sync may be slow: Project files cannot be watched (are they under network mount?)
    as。 对象和数组
    为什么for不能有序遍历数组的所有元素?(Array的设计原理)
  • 原文地址:https://www.cnblogs.com/andy9468/p/14348610.html
Copyright © 2020-2023  润新知