Services, tasks, and containers
Tasks and scheduling
task是swarm中的原子单位,orchestrator 通过task实现service,container是task的实例化。底层逻辑的实现是基于scheduler和orchestrator
Pending services
如果在swarm中没有节点执行task,那么service可以配置为pending状态。
Replicated and global services
service部署有两种方式:replicated 和 global
replicated service就是在一开始根据task的数量指定副本的数量,而global service是每加入一个任务都创建一个副本。
Rotating the CA certificate
manager node为其他节点提供两种token:worker token 和manager token。默认情况下,每个节点三个月更新一次证书,你可以运行docker swarm update --cert-expiry <TIME PERIOD>
命令修改更新频率,最小时间间隔为1小时。
Rotating the CA certificate
运行命令docker swarm ca --rotate
获得新的证书和钥匙,之前的证书就会失效,如果有需要,加上后缀--ca-cert
和--external-ca
可以指定根证书并使用群组外部的根CA。
Swarm task states
task是一次运行完成的执行单元,停止后不会再次执行,但新的task会取代它。task有以下状态,只会前进不会后退。
View task state
通过docker service ps <service-name>
可以查看task state
$ docker service ps webserver
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
owsz0yp6z375 webserver.1 nginx UbuntuVM Running Running 44 seconds ago
j91iahr8s74p \_ webserver.1 nginx UbuntuVM Shutdown Failed 50 seconds ago "No such container: webserver.…"
7dyaszg13mw2 \_ webserver.1 nginx UbuntuVM Shutdown Failed 5 hours ago "No such container: webserver.…"