如何使用Docker Swarm设置最小容器需求
在Docker Swarm中,您可以设置最大系统要求,如下所示:
我有一个容器,其最低系统要求是2个CPU内核和4GB RAM,这是我的Docker Swarm中节点的确切大小.这意味着当此容器运行时,它必须是该节点上运行的唯一容器. 但是,当我将容器与其他容器一起运行时,其他容器将放置在同一节点上.如何确保Docker为此容器提供最低级别的CPU和RAM? 更新 我添加了@yamenk建议的预留,但是我仍然在同一节点上启动其他容器,这会导致我试图保护的容器出现性能问题:
最佳答案
更新
显然,在docker swarm中记忆保留的效果并没有很好的记录,它们是最好的努力.要了解内存预留标志的影响,请检查documentation:
要强制在同一节点上没有其他容器运行,您需要设置服务约束.您可以做的是为swarm特定标签中的节点提供节点,并使用这些标签来调度服务,使其仅在具有这些特定标签的节点上运行. 如描述的那样,可以使用以下命令将节点标签添加到节点:
然后在堆栈文件中,您可以限制容器在仅具有指定标签的节点上运行,而将其他容器限制为避免标记为hello-world = yes的节点.
如果要在多个节点上启动my-service的副本,并且仍然在每个节点上运行一个容器,则需要设置my-service的全局模式,并将相同的标签添加到要运行容器的节点. 全局模式确保只有一个容器将运行满足服务约束的每个节点:
旧答案: 您可以设置资源预留:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- bootstrap之media&close&well样式
- Redis系列一:reids的单机版安装
- scala – 迁移到游戏! 2.5导致此错误:NoSuchMe
- yum安装rabbitmq3.6.11与erlange20配置及优化
- scala – 如何在读取向量时返回选项
- AngularJS将requestVerificationToken传递给服务
- typescript – 检查输入控件是否在angular2中具有
- scala – 使用带有Trigger.Once的Spark结构化流
- macos – 运行Mac OS X安装的Docker镜像
- angularjs-在对象数组中获取值时使用过滤器