共计 3863 个字符,预计需要花费 10 分钟才能阅读完成。
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 节点界面
更多 Docker 相关教程见以下内容:
Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm
Ubuntu 16.04 服务器上配置使用 Docker http://www.linuxidc.com/Linux/2017-06/145176.htm
Ubuntu 15.04 下安装 Docker http://www.linuxidc.com/Linux/2015-07/120444.htm
Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm
Docker 创建基础镜像 http://www.linuxidc.com/Linux/2017-05/144112.htm
在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm
Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm
使用 Docker 分分钟启动常用应用 http://www.linuxidc.com/Linux/2017-04/142649.htm
Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法 http://www.linuxidc.com/Linux/2017-05/143862.htm
Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148384.htm