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 。。。

  • 相关阅读:
    太精辟了!从学校到职场的十条经典语录!
    平庸领导下跳棋,伟大领导下象棋(转)
    新官上任前的十一大基本功
    病母私自出房有感
    你为何还会出现在我梦里
    创业辛酸
    Goldengate can't extract data from compressed table
    配置GoldenGate同步DDL语句(3)
    Goldengate各build与Oracle数据库版本间的兼容性
    11g新特性:Note raised when explain plan for create index
  • 原文地址:https://www.cnblogs.com/andy9468/p/14348610.html
Copyright © 2011-2022 走看看