我有一个具有4个节点的docker swarm设置,并在全局模式下将Pumba部署到swarm设置。之后,我在swarm上运行我的应用程序容器,在不同的节点上使用副本。我想将kill或netem命令发送到所有节点中的所有Pumba容器。
现在,我能够做到的唯一方法是在创建服务时指定命令:
docker service create --name PUMBA --mode=global --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock gaiaadm/pumba:master pumba --random --interval 10s kill re2:"^customer-api*" --signal SIGTERM
或者通过进入每个主机并对容器执行exec并运行命令:
docker exec -i $(docker ps| grep pumba|cut -d 'g' -f1 ) pumba netem --duration 60s delay --time 3000 --jitter 40 --distribution normal re2:"^${name[i]}*" > /dev/null 2>&1 &
我正在为此创建一个bash脚本。有没有办法可以将命令传递给服务,以便它在所有全局副本中反映出来?
答案 0 :(得分:0)
我可以使用以下命令向Pumba容器发送新命令
docker service update PUMBA --args "pumba --random --interval 5s kill re2:"^customer*" --signal SIGTERM"