开发者社区 问答 正文

Swarm mode 集群服务编排的标签概览


swarm mode 集群支持 Compose V1/V2 和 Compose V3 版本的编排模板。Compose V1/V2 和 Compose V3 版本的编排模板对于阿里云扩展标签的支持情况不同。

功能Compose V1/V2Compose V3
服务的健康检查aliyun.probe 标签Compose 中的 healthcheck 一节。该功能由 Docker Engine 原生提供。
滚动更新(rolling update)aliyun.rolling_updates 标签aliyun.rolling_updates.parallelism 标签Compose 中的 update_config 一节。该功能由 swarm mode 原生提供,可设置更新的批量、间隔时间、失败后的动作等。
服务依赖aliyun.depends 标签Compose 中的 depends_on 一节。服务会按照依赖关系顺序启动,默认等待 3 分钟,如果服务 3 分钟后依然没有达到运行状态,会忽略并继续部署其他服务,但最终部署结果是失败。
服务的容器数量aliyun.scale 标签compose 中的 replicas 一节。该功能对应于 swarm mode 的 Replicated Service,当容器故障时,会自动创建新容器,始终保证 replicas 等于指定的数量。
全局服务aliyun.global 标签compose 中的 mode 一节。该功能对应于 swarm mode 的 Global Service,当新节点加入集群里,会自动创建相应容器。
负载均衡aliyun.routing、aliyun.lb 标签参见 路由和负载均衡
日志aliyun.log 标签与 Compose V1/V2 相同。参见 log 标签
数据卷compose 的 volumes 一节使用方法和 Compose V1/V2 相同。但使用本地数据卷时,如果主机文件夹不存在,不会自动创建,需要您手工创建。
监控与自动扩缩容aliyun.auto_scaling、aliyun.reschedule 标签和 Compose V1/V2 相同。
外部服务compose 的 external_links 一节。不支持。
容器重新调度环境变量中的 reschedule:on-node-failure。不需要设置。replicated 服务能够保证容器自动迁移。
高可用性调度环境变量中的 availability:az不支持。

展开
收起
反向一觉 2017-10-30 15:05:33 1956 分享 版权
阿里云 AI 助理回答

从您提供的信息来看,Compose V1/V2 和 Compose V3 版本在支持阿里云扩展标签方面存在一些差异,同时也有一些共同点。下面我将基于这些信息,结合阿里云产品的角度来帮助您理解:

共同点

  • 健康检查:两者都支持服务的健康检查,但方式不同。V1/V2 需要通过 aliyun.probe 标签实现,而 V3 则直接在 Compose 文件的 healthcheck 一节原生支持。
  • 日志:无论 V1/V2 还是 V3,都支持通过 aliyun.log 标签进行日志配置。
  • 数据卷:两者对数据卷的支持相似,但在 V3 中使用本地数据卷时,如果指定的主机文件夹不存在,需要手动创建,这与 V1/V2 的自动创建行为不同。
  • 容器重新调度:对于高可用性需求,两者都能通过不同的机制(环境变量或原生功能)确保容器在节点故障时自动迁移。

不同点及阿里云特有功能支持

  • 滚动更新:V1/V2 使用 aliyun.rolling_updates 标签,而 V3 在 Compose 文件的 update_config 一节原生支持更灵活的滚动更新配置,如批量更新数量、间隔时间等。
  • 服务依赖:虽然两者都支持服务依赖定义,但 V3 直接通过 depends_on 实现,且具有默认等待时间限制和失败处理逻辑。
  • 服务的容器数量:V1/V2 通过 aliyun.scale 标签控制,而 V3 在 replicas 一节原生支持复制集服务,能自动维护指定数量的容器实例。
  • 全局服务:V1/V2 通过 aliyun.global 标签,V3 则在 mode 一节中设置为 Global Service,以实现新节点加入时自动部署容器。
  • 负载均衡:两者均支持通过特定标签(如 aliyun.routing, aliyun.lb)配置路由和负载均衡,但具体实现细节可能随版本有所不同。
  • 监控与自动扩缩容:支持情况相同,可通过 aliyun.auto_scaling 等标签实现。
  • 外部服务:仅 V1/V2 支持通过 external_links 引用外部服务,V3 不直接支持此特性。
  • 高可用性调度:V1/V2 可通过环境变量配置跨可用区调度,而 V3 没有提及直接支持该特性。

综上所述,如果您计划在阿里云环境中利用 Docker Swarm mode,并希望充分利用阿里云的扩展功能,选择 Compose V3 版本可能会提供更原生、灵活且功能丰富的编排选项。不过,具体选择还需根据您的实际需求和对特定功能的支持度来决定。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答