LOADING

Follow me

含着金钥匙出生的Docker管理平台 - Shipyard (二)【zoues.com】
一月 29, 2017|DockerPaaS

含着金钥匙出生的Docker管理平台 - Shipyard (二)【zoues.com】

含着金钥匙出生的Docker管理平台 - Shipyard (二)【zoues.com】

上一篇我们简单说了下Shipyard的自动化部署,很多朋友在问,这也太自动了吧,都不知道跑了些什么鬼。今天这一篇我们就用手动的方法部署Shipyard。另外还有些朋友想多了解docker的基础知识,后续我们会在DoCoders这里详细讲解docker的基础知识,请订阅我们或者继续关注哦!




首先我们看一张Shipyard架构图:(画得有些拙劣,请大家撮合着看看,哈哈哈)

含着金钥匙出生的Docker管理平台 - Shipyard (二)

1. 一个shipyard管理的docker集群可以包含一个或多个engine(引擎),一个engine就是监听tcp 端口的docker daemon。shipyard管理docker daemon、images、containers完全基于Docker API,不需要做其他的修改。另外,shipyard可以对每个engine做资源限制,包括CPU和内存;因为TCP监听相比Unix socket方式会有一定的安全隐患,所以shipyard还支持通过SSL证书与docker后台进程安全通信。


2. RethinkDB是一个shipyard项目的一个docker镜像,用来存放账号(account)、引擎(engine)、服务密钥(service key)、扩展元数据(extension metadata)等信息,但不会存储任何有关容器或镜像的内容。一般会启动一个shipyard/rethinkdb容器shipyard-rethinkdb-data来使用它的/data作为数据卷供另外rethinkdb一个挂载,专门用于数据存储。

docker run /    -ti /    -d /    –restart=always /    –name shipyard-rethinkdb /    rethinkdb

3. Shipyard控制器与RethinkDB实例进行数据存储(用户帐户,引擎地址,事件等)。它还提供API和Web界面。控制器使用Citadel与每个主机通信并处理集群事件。


4. Shipyard中的一切都是围绕Shipyard API构建的。它支持启动,停止和检查容器,添加和删除引擎等操作。它是一个非常简单的RESTful基于JSON的API。


5. Shipyard UI是Shipyard集群的Web界面。它使用Shipyard API进行所有交互。它是通过控制器提供的AngularJS应用程序。


6. 要启用Swarm leader选择,我们必须使用来自Swarm容器的外部键值存储。在这个例子中,我们将使用ETCD 但是,您可以使用群支持的任何键/值后端。例如,zookeeper或consul。

docker run /    -ti /    -d /    -p 4001:4001 /    -p 7001:7001 /    –restart=always /    –name shipyard-discovery /    microbox/etcd -name discovery

7. 默认情况下,Docker引擎只侦听套接字。我们可以重新配置引擎以使用TLS,或者您可以使用代理容器。这是一个非常轻量级的容器,它只是将请求从TCP转发到Docker监听的Unix套接字。注意:如果使用手动TCP / TLS配置,则不需要此选项。

docker run /    -ti /    -d /    -p 2375:2375 /    –hostname=$HOSTNAME /    –restart=always /    –name shipyard-proxy /    -v /var/run/docker.sock:/var/run/docker.sock /    -e PORT=2375 /    shipyard/docker-proxy:latest

8. 运行swarm管理容器。

docker run /    -ti /    -d /    –restart=always /    –name shipyard-swarm-manager /    swarm:latest /    manage –host tcp://0.0.0.0:3375 etcd://<IP-OF-HOST>:4001


9.运行Swarm代理容器,允许节点调度容器

docker run /    -ti /    -d /    –restart=always /    –name shipyard-swarm-agent /    swarm:latest /    join –addr <ip-of-host>:2375 etcd://<ip-of-host>:4001


10. 运行shipyard-controller

docker run /    -ti /    -d /    –restart=always /    –name shipyard-controller /    –link shipyard-rethinkdb:rethinkdb /    –link shipyard-swarm-manager:swarm /    -p 8080:8080 /    shipyard/shipyard:latest /    server /    -d tcp://swarm:3375

11. 一旦启动控制器并且控制器已初始化数据存储,就能够通过http:// [ip-addr]:8080登录。


大家可能会注意到一点,手动安装并不好设置TLS配置,即没有安全证书(https)。所以建议大家还是使用脚本的方式部署shipyard,大家可以访问这个链接,了解该脚本的内容:https://shipyard-project.com/deploy。

no comments
Share

发表评论