基于Machine Metadata的任务调度
复杂和特定的要求的应用程序可以针对一个子集的集群调度通过machine metadata
。强大的部署拓扑结构,可以实现的基础上的机器的地区,机架位置,磁盘速度或其他任何你可以想到的调度方式。
Metadata can be provided via or a config file. Here's an example config file: Metadata(元数据)可以通过配置文件提供。下面是一个示例配置文件:
# Comma-delimited key/value pairs that are published to the fleet registry.
# This data can be referenced in unit files to affect scheduling decisions.
# An example could look like: metadata="region=us-west,az=us-west-1"
metadata="platform=metal,provider=rackspace,region=east,disk=ssd"
元数据配置之后可以通过fleetctl list-machines
查看:
$ fleetctl list-machines
MACHINE IP METADATA
29db5063... 172.17.8.101 disk=ssd,platform=metal,provider=rackspace,region=east
ebb97ff7... 172.17.8.102 disk=ssd,platform=cloud,provider=rackspace,region=east
f823e019... 172.17.8.103 disk=ssd,platform=cloud,provider=amazon,region=east
The unit file for a service that does a lot of disk I/O but doesn't care where it runs could look like: 这是一个I/O很大但是其他无关的示例单元文件:
[X-Fleet]
MachineMetadata=disk=ssd
如果你想确保非常高的可用性,你可以有3个单元的文件,必须安排跨供应商,但在同一地区:
[X-Fleet]
Conflicts=webapp*
MachineMetadata=provider=rackspace
MachineMetadata=platform=metal
MachineMetadata=region=east
[X-Fleet]
Conflicts=webapp*
MachineMetadata=provider=rackspace
MachineMetadata=platform=cloud
MachineMetadata=region=east
[X-Fleet]
Conflicts=webapp*
MachineMetadata=provider=amazon
MachineMetadata=platform=cloud
MachineMetadata=region=east