一个Shipyard集群包含一个或者多个“引擎”。一个引擎就是一个Docker后台程序,它提供socket(本地使用)或者供其他机器使用的TCP端口。除此之外再没有其他任何的代理或者安装远程程序来激活管理;仅仅只是通过Docker的接口。
Docker后台程序侦听TCP端口请参看Docker文档在“Bind Docker to another host/port or a Unix socket”。
当一个引擎被添加到Shipyard中,你就可以为一个特殊的引擎定义资源限制了。在调度容器时会使用这些限制来确保引擎适应所有的请求。你可以使用SSL证书来保证安全通信。
每个引擎都必须有一个可以识别的标示符。
这个地址是用来和引擎交互的。对于本地用户,你可以使用unix:///path/to/docker.sock
。对于多机配置,使用非SSL端口http://
或者基于SSL协议的https://
每个引擎都应该定义对资源的限制。它们可以是CPU和内存(单位MB)。
一个引擎可以有一个或多个标签。这些都是用来调度和决策容器的。
一个引擎可以配置成使用SSL。参看Docker文档来运行SSL。
shipyard cli> shipyard add-engine --id local \
--addr http://10.1.2.3:2375 \
--cpus 4.0 \
--memory 8192 \
--label dev \
--label local
你也可以使用Docker socket来添加引擎,这样的话就只能运行单机环境了。你也可以在Shipyard控制器运行时添加一个挂载项(-v /var/run/docker.sock:/docker.sock
)
shipyard cli> shipyard add-engine --id local-socket \
--addr unix:///docker.sock \
--cpus 4.0 \
--memory 8192 \
--label dev \
--label local
shipyard cli> shipyard engines
ID Cpus Memory Host Labels
local 4.00 8192.00 http://172.16.1.50:2375 local,dev
shipyard cli> shipyard inspect-engine local
{
"engine": {
"labels": [
"local",
"dev"
],
"memory": 2048,
"cpus": 4,
"addr": "http://172.16.1.50:2375",
"id": "local"
},
"id": "a08b8518-e963-4eb5-959a-566bd270cd28"
}
shipyard cli> shipyard remove-engine a08b8518-e963-4eb5-959a-566bd270cd28
removed local