全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
容器服务

服务部署约束(affinity:service)

更新时间:2017-11-28 15:31:16

设置服务的部署约束条件。

容器服务支持 Docker Swarm 兼容的容器部署约束条件,您可以通过 Docker Swarm Filter 控制一个容器的部署。

但是在社区版 Docker Compose 中,却并没有相关的能力来控制服务直接的部署约束。

在容器服务中,您可以在 environment 中添加相关 affinity:service,来约束服务之间的亲和度(Affinity),达到控制服务部署策略的功能。支持服务之间的 Soft affinityHard affinity

示例:

本示例中,web 服务设置了 affinity:service!=db 的部署约束。使得 web 服务一定会选择没有部署 db 服务的节点,这样当一个节点失效时,可提高服务可用性。当您的集群只有一个节点的时候,由于指定的是 hard anti-affinity,该部署会失败,因为部署没有办法满足所指定的强约束条件。

  1. web:
  2. image: registry.aliyuncs.com/acs-sample/wordpress:4.5
  3. ports:
  4. - '80'
  5. environment:
  6. - affinity:service!=db
  7. restart: always
  8. links:
  9. - 'db:mysql'
  10. labels:
  11. aliyun.logs: /var/log
  12. aliyun.probe.url: http://container/license.txt
  13. aliyun.probe.initial_delay_seconds: '10'
  14. aliyun.routing.port_80: http://wordpress
  15. aliyun.scale: '2'
  16. db:
  17. image: registry.aliyuncs.com/acs-sample/mysql:5.7
  18. environment:
  19. MYSQL_ROOT_PASSWORD: password
  20. restart: always
  21. labels:
  22. aliyun.logs: /var/log/mysql
本文导读目录