Docker可视化管理工具Shipyard安装与配置

文章来源: Shipyard Automated Deployment

Shipyard简介

Shipyard是一个集成管理docker容器、镜像、Registries的系统,它具有以下特点:

  • 支持多节点的集成管理
  • 可动态加载节点
  • 可托管node下的容器

环境准备

下载镜像

# docker pull rethinkdb
# docker pull microbox/etcd
# docker pull shipyard/docker-proxy
# docker pull swarm 
# docker pull shipyard/shipyard

自动安装

注意:这将会暴露Docker Engine的管理端口2375。如果此节点在安全网络外部可以访问,建议使用TLS。

1. 下载自动部署Shell脚本

curl -sSL https://shipyard-project.com/deploy | bash -s

自动部署脚本中, 包括以下参数:

  • ACTION: 表示可以使用的指令,它包括以下选项。
    • deploy, 默认值, 表示自动安装部署Shipyard管理工具及相关应用
    • upgrade,更新已存在的实例(注意:你要保持相同的系统环境、变量来部署同样的配置
    • node, 部署Swarm的一个新节点
    • remove, 已存在的shipyard实例
  • DISCOVERY: 集群系统采用Swarm进行采集和管理(在节点管理中可以使用‘node’)
  • IMAGE: 镜像,默认使用shipyard的镜像
  • PREFIX: 容器名字的前缀
  • SHIPYARD_ARGS: 容器的常用参数
  • TLS_CERT_PATH: TLS证书路径
  • PORT: 主程序监听端口 (默认端口: 8080)
  • PROXY_PORT: 代理端口 (默认: 2375)

2. 使用镜像

Shipyard允许您采取指定的镜像来部署实例,比如以下的测试版本,你也已这样做:

curl -sSL https://shipyard-project.com/deploy | IMAGE=shipyard/shipyard:test bash -s

3. 使用前缀

你可以在部署Shipyard管理工具时,自定义你想要的前缀,比如

curl -sSL https://shipyard-project.com/deploy | PREFIX=shipyard-test bash -s

4. 使用运行参数

这里增加一些shipyard运行参数,你可以像这样进行调整:

curl -sSL https://shipyard-project.com/deploy | SHIPYARD_ARGS="--ldap-server=ldap.example.com --ldap-autocreate-users" bash -s

5. 使用安全认证(TLS证书)

启用安全加密通讯协议(TLS)对Shipyard进行部署,包括代理(docker-proxy)、swarm集群、shipyard管理平台的配置,这是一个配置规范。证书必须采用以下命名规范:

  • ca.pem: 安全认证证书
  • server.pem: 服务器证书
  • server-key.pem: 服务器私有证书
  • cert.pem: 客户端证书
  • key.pem: 客户端证书的key

注意:证书将被放置在一个单独的安全认证docker容器中,并在各个组成部分之间共享。如果需要调试,可以将此容器连接到调试容器。数据容器名称为$PREFIX-certs

docker run --rm \ 
   -v $(pwd)/certs:/certs \ 
   ehazlett/certm \ -d /certs \ 
   bundle \ 
   generate \
   -o shipyard \ 
   --host proxy \ 
   --host 127.0.0.1

你也可以在部署时,指定TLS_CERT_PATH参数:

curl -sSL https://shipyard-project.com/deploy | TLS_CERT_PATH=$(pwd)/certs bash -s

6. 增加Swarm节点

Shipyard管理的Swarm节点部署脚本将自动的安装key/value存储系统(etcd系统),用于进行服务发现, 相关的工具还有Consul、Zookeeper。增加一个节点到swarm集群,你可以通过以下的节点部署脚本:

curl -sSL https://shipyard-project.com/deploy | ACTION=node DISCOVERY=etcd://10.0.1.10:4001 bash -s

注意:10.0.1.10该ip地址为部署Ectd系统所在主机的IP地址,你需要根据你的部署位置进行修改。

7. 删除Shipyard管理工具

如果你要删除Shipyard部署的容器,你可以使用以下脚本进行删除。

curl -sSL https://shipyard-project.com/deploy | ACTION=remove bash -s

手动安装

1. 数据存储

Shipyard使用RethinkDB做为数据存储工具, 我们需要先运行RethinkDB容器。

# docker run \ 
    -ti \ 
    -d \ 
    --restart=always \ 
    --name shipyard-rethinkdb \ 
    rethinkdb

2. 服务发现

为了启用Swarm leader选择,我们必须使用来自Swarm容器的外部键值存储。此处,我们使用Etcd作为服务发现工具。可以选用的服务发现工具还有Consul、Zookeeper等。

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

3. Docker代理服务

默认情况下,Docker引擎只侦听套接字。 我们可以重新配置引擎以使用TLS,或者您可以使用代理容器。 这是一个非常轻量级的容器,它只是将请求从TCP转发到Docker监听的Unix套接字。

# 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

4. 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

5. Swarm Agent节点

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

6. Shipyard管理工具

# 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

Shipyard管理界面

容器管理界面

容器管理列表界面
容器管理界面
容器状态页面
容器部署页面

镜像管理界面

镜像管理界面

Swarm节点界面

Swarm节点界面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容