我的办公室里有一个小型的docker swarm:一个40核(128GB RAM)和两个8核(每个16GB RAM)。当我在整个群集中部署服务时,作业正在运行,但它们正在传播 匀 不考虑每台机器的容量。
我在经理上启动了一个群体:
docker swarm init
docker swarm update --task-history-limit 2
并在每个节点上:
docker swarm join --token <token-string> <ipaddr:port>
然后我开始使用以下服务:
docker service create --detach \
--mount type=bind,src=/s/mypath,dst=/home/mypath \
--entrypoint "/home/mypath/myscript.sh arg1 arg2" \
--name "mystuff" -w /home/mypath myregistry.me.com:5433/myimage
该过程单独工作。我没有根据节点强度找到分配权重或亲和力的指示。
理想情况下,我希望能够说出类似以下内容之一:
- 加入群体,不要超过
n
任务(有点天真) - 加入群体,加权我的(cpu-)容量为
0.2
(要么5
在更大的) - 启动此服务,为每个可用核心分配不超过一个任务
我自我调节服务的整体规模 docker service scale
,但这不提供任何粒度。是否可以通过可用资源来管理每个节点的docker swarm服务?
(这可能更有动力转向k8s,我假设它提供了沿着这些方向提供的功能。学习过程中的痛苦越来越大,而且过渡时我一直很僵硬。)