zoukankan      html  css  js  c++  java
  • 服务编排-以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 。。。

  • 相关阅读:
    [转]Xml Schema
    设计模式之Observer Pattern
    通过 C# 使用 J# 类库中的 Zip 类压缩文件
    An extender can't be in a different UpdatePanel than the control it extends
    关于AutoResetEvent和ManualResetEvent
    ref, out参数区别
    取整, 无条件进位, 无条件取整
    VB.NET语法基础
    XP防火墙,挡掉访问自己的IIS
    maybe useful for Add the solution to source control
  • 原文地址:https://www.cnblogs.com/andy9468/p/14348610.html
Copyright © 2011-2022 走看看