我在一个虚拟机中有一个docker swarm,有两个4GB内存的Centos.
在我部署docker私有注册表(注册表2.6.4)时,它将服务状态显示为永久挂起.
我用了
docker service ps<< registry_name>>
当我使用docker inspect检查<< task_id>>在消息中我得到了这个
“没有合适的节点(在1个节点上不满足调度约束)”.
我尝试了服务重启和重新部署.
如何解决这个问题?
当组合文件中定义的节点标签与实际节点中定义的节点标签不匹配时,我经常遇到这个问题,因为我设置了错误的标签(例如拼写错误)或根本忘记标记节点.
标记节点:
1)对于每个目标节点,执行:
docker-machine ssh< manager_node_name> ‘docker node update –label-add< label_name> =< label_value> < target_node_name>”
2)确保它们与compose文件中定义的匹配.
3)在管理器节点中重启docker service
例如:
撰写文件:
dummycontainer: image: group/dummyimage deploy: mode: replicated replicas: 1 placement: constraints: [node.labels.dummy_label == dummy] restart_policy: condition: on-failure
假设我想在名为dummy_node的节点中部署此副本:
docker-machine ssh manager_node 'docker node update --label-add dummy_label=dummy dummy_node'
并在管理器节点中重新启动docker.
最后,如果你部署了,你应该期望在dummy_node中运行dummycontainer,假设在两个步骤中都正确设置了标签.否则可以预见到你得到的错误.
最好的祝福
原文地址:https://www.jb51.cc/windows/364492.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。