4-compose/stack/swarm集群
区别和联系
docker-compose V3之后,设置资源限额和容器数量的配置,只能写在deploy字段里, 但是docker-compose up 却不支持 deploy 配置
编辑同一份docker-compose.yml, 但是compose 和 swarm/stack的分工是这样的:
docker-compose 用于dev 支持build/restart 但是不支持deploy,
swarm/stack 用于 prod 支持 deply的各种设置,包括分配cpu和内存, 但是创建容器只支持从image,不支持build.
deploy扩缩容参数
deploy是用于在docker集群环境下自动进行扩容和缩容的配置项,docker-compose up
and docker-compose run
两个命令会忽略此配置,只有docker stack deploy
命令下才有用
有以下子选项
- endpoint_mode:集群对提供服务的方式
- endpoint_mode: vip VIP方式
- endpoint_mode: dnsrr dns轮询方式
- labels:元数据(标签)
- mode:设置容器模式(默认replicated)
- mode: global 全局模式,只能有一个容器
- mode: replicated 复制模式,可以指定数量
- placement:定约束和首选项的配置
- replicas:指定容器可运行的数量,需要(mode: replicated)
- resources:资源约束,可约束cpu和内存,设置分配量和预留量
- limits:
- cpus: ‘0.50’
- memory: 50M
- reservations:
- cpus: ‘0.25’
- memory: 20M
- limits:
- restart_policy:重启策略
- condition:重启的条件(default: any)
- none 没有条件(不重启)
- on-failure 故障情况下才重启
- any 任何情况下都重启
- delay: 两次重启中的时间间隔(default: 0).
- max_attempts: 尝试重启的次数(默认不限制)
- window: 重启之前的等待时间(默认不等待)
- condition:重启的条件(default: any)
- rollback_config:回滚配置
- parallelism: 一次回滚的容器数量,为0则1次回滚完
- delay: 两次回滚间隔(default 0s).
- failure_action: 回滚失败后的操作,继续或暂停(default pause)
- monitor: 任务更新后的持续监测时间(ns|us|ms|s|m|h) (default 0s).
- max_failure_ratio: 回滚期间的容错率(default 0).
- order: 任务执行顺序(default stop-first).
- stop-first 旧任务在开始新任务之前停止
- start-first 新任务首先启动,正在运行的任务暂停
- update_config:更新配置
- parallelism: 一次要更新的容器数量
- delay: 两次更新的时间间隔
- failure_action: 更新失败后的操作,继续或暂停(default pause)
- monitor: 任务更新后的持续监测时间(ns|us|ms|s|m|h) (default 0s).
- max_failure_ratio: 更新期间的容错率(default 0).
- order: 任务执行顺序(default stop-first).
- stop-first 旧任务在开始新任务之前停止
- start-first 新任务首先启动,正在运行的任务暂停
配置举例
1 | version: "3.7" |
评论