计划服务
Rancher的核心调度逻辑是Rancher的一部分,它处理端口冲突和根据主机/容器上的标签进行调度的能力。除核心调度逻辑外,Rancher还通过使用Rancher Scheduler目录项来支持附加的调度策略。
注意:这些功能不适用于Kubernetes,因为Kubernetes处理自己的pod的调度。
启用Rancher调度程序
任何环境模板,Rancher调度程序默认就是required
的。如果您从环境中删除了该栈,则可以通过在目录 - > 库中启动Rancher Scheduler将其添加到环境中。
对单个主机的多个ip进行调度
默认情况下,Rancher假定在安排发布端口或启动负载均衡器的服务时,主机上只有一个IP可用。如果您的主机有多个可以使用的IP,则需要配置主机以允许Rancher调度程序知道哪些IP可用。
当主机上有多个ip可用时,当一个端口通过服务或负载均衡器发布时,Rancher将会调度所有可用的调度器ip。调度程序将报告主机上的所有可用调度器ip被分配到该端口后,将报告端口冲突。
调度与资源限制
当Rancher 主机被添加到Rancher时,它们将根据主机的大小自动分配资源限制。可以通过编辑主机来调整这些限制。在“ 基础设施” - > “主机”中,从主机的下拉列表中选择“编辑”。在主机的资源限制部分中,您可以更新内存或CPU,以获得要在主机上使用的最大数量。
在UI中设置保留区
在创建服务时,您可以在security/host选项卡中指定内存保留和CPU保留。当设置这些保留时,服务的容器只被安排在具有可用资源的主机上。主机上这些资源的最大限制是基于主机的资源限制来确定的。如果将容器调度到主机上,将强制这些限制超出阈值,那么容器就不会被调度到主机上。
在Rancher Compose中设置预约
例 docker-compose.yml
version: '2'
services:
test:
image: ubuntu:14.04.3
stdin_opcn: true
tty: true
# Set the memory reservation of the container
mem_reservation: 104857600
例 rancher-compose.yml
version: '2'
services:
test:
# Set the CPU reservation of the container
milli_cpu_reservation: 10
scale: 1
仅在主机上安排特定服务
通常,大多数容器调度都是在服务上定义的。服务将有特定的规则或限制,容器(s)可以被安排在哪个主机上。例如,必须将容器安排在具有特定主机标签的主机上。Rancher有能力指定主机上的需求,只允许将特定的容器安排在主机上。当您想要使用这个特性的时候,举个例子,如果您想要将一个主机专用于主机上的数据库容器。
注意:当您为主机上的容器添加标签限制时,您将需要包含一个标签,以便将基础架构服务安排到主机上。没有这些服务,允许网络和Rancher的其他关键组件工作的容器将不会安排在主机上。
对于任何主机,您将通过从主机的下拉列表中选择编辑来编辑主机以添加容器必须具有的标签。在“ 需求容器标签”部分中,您可以添加要在服务中使用哪些标签,以便将这些容器调度到主机上。UI将自动将标签(ie io.rancher.container.system=
)作为必需的标签。