前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker可视化管理工具Shipyard安装与配置

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

作者头像
菲宇
发布2022-12-21 19:40:22
2K0
发布2022-12-21 19:40:22
举报
文章被收录于专栏:菲宇

Shipyard简介

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

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

Docker Shipyard对于喜欢Docker Swarm的人来说是一个方便的工具,但希望它能做得更多。虽然Swarm通过CLI专注于容器编排,但Docker Shipyard除了容器本身之外还允许您管理应用程序映像和容器注册表,从而进一步发挥作用。此外,除了CLI之外,Shipyard还提供基于Web的图形前端和丰富的API。

第1步:创建数据容器

正如您所料,Shipyard需要存储一些数据才能监控您的集群。因此,在启动Shipyard本身之前,您需要创建两个Docker容器以用于数据目的。第一个容器将用作数据容器卷,第二个容器将用作数据库服务器。

Shipyard使用RethinkDB,因此您将基于shipyard / rethinkdb映像创建两个数据容器。

要启动这两个容器,首先使用以下命令创建数据卷容器:

docker create --name shipyard-rethinkdb-data shipyard/rethinkdb

接下来,创建一个数据库服务器并将其链接到刚刚创建的数据卷容器:

docker run -it -d --name shipyard-rethinkdb --restart=always --volumes-from shipyard-rethinkdb-data -p 127.0.0.1:49153:8080 -p 127.0.0.1:49154:28015 -p 127.0.0.1:29015:29015 shipyard/rethinkdb

第2步:启动造船厂

现在您可以让Shipyard存储其数据,您可以继续创建一个Shipyard容器,侦听端口8080:

docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard

恭喜!造船厂现已启动并运行。

第3步:使用Docker Shipyard

但是,据推测,您实际上想要使用Shipyard,而不仅仅是让它在您的集群上运行。您可以通过不同方式访问它。正如我所提到的,Shipyard的一个好处是可以通过CLI,API或Web界面访问它。

每个人都喜欢GUI(好吧,也许不是,但在这种情况下,获取Web UI可能是您首先想要使用Shipyard的一大部分原因),所以让我们从Web界面开始。要访问它,只需将浏览器指向http:// server_ip:8080。默认登录名为admin,默认密码为shipyard。(是的,我知道。至少它不是“密码”。)

更改密码

如果您在生产中使用Shipyard并且您喜欢隐私,则可能需要更改默认凭据。要做到这一点,您需要CLI,这需要启动一个单独的容器。所以激发它:

docker run -ti --rm shipyard/shipyard-cli

我们使用-rm标志启动了这个容器,因为我们希望Docker在使用它时将其关闭。

启动此容器后,它将打开Shipyard CLI提示符。要更改默认密码,请键入:

shipyard login

它将要求一个URL,这是Shipyard正在监听的IP地址和端口(在我们的例子中,它是http:// server_ip:8080)。然后会要求您输入用户名和密码,这些用户名和密码仍然是管理员和造船厂。

登录后,运行此命令以更改密码:

shipyard change-password

Control-D将使您离开Shipyard CLI。

除了Web UI之外,Shipyard的API使其成为容器监控和管理的真正有用工具。所以我不能不提及它就结束这篇文章。

此处记录的Shipyard API可用于构建各种自定义Web应用程序。此外,Shipyard支持Docker Remote API来管理远程主机上的容器,因此您可以在构建应用程序时将后一种API与Shipyard的本机API相结合。

环境准备

下载镜像

    1. docker pull rethinkdb
    2. # docker pull microbox/etcd
    3. # docker pull shipyard/docker-proxy
    4. # docker pull swarm
    5. # docker pull shipyard/shipyard

手动安装

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套接字。

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

4. Swarm管理节点

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

5. Swarm Agent节点

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

6. Shipyard管理工具

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

Shipyard管理界面

容器管理界面

容器管理列表界面

容器管理界面

容器状态页面

容器部署页面

镜像管理界面

镜像管理界面

Swarm节点界面

Swarm节点界面

自动安装

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

1. 下载自动部署Shell脚本

代码语言:javascript
复制
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允许您采取指定的镜像来部署实例,比如以下的测试版本,你也已这样做:

代码语言:javascript
复制
curl -sSL https://shipyard-project.com/deploy | IMAGE=shipyard/shipyard:test bash -s

3. 使用前缀

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

代码语言:javascript
复制
curl -sSL https://shipyard-project.com/deploy | PREFIX=shipyard-test bash -s

4. 使用运行参数

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

代码语言:javascript
复制
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

代码语言:javascript
复制
  1. 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参数:

代码语言:javascript
复制
curl -sSL https://shipyard-project.com/deploy | TLS_CERT_PATH=$(pwd)/certs bash -s

6. 增加Swarm节点

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

代码语言:javascript
复制
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地址,你需要根据你的部署位置进行修改。

https://blog.csdn.net/a632189007/article/details/78755741

7. 删除Shipyard管理工具

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

代码语言:javascript
复制
curl -sSL https://shipyard-project.com/deploy | ACTION=remove bash -s
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shipyard简介
  • 第1步:创建数据容器
  • 第2步:启动造船厂
  • 第3步:使用Docker Shipyard
    • 更改密码
    • 环境准备
    • 手动安装
    • Shipyard管理界面
    • 自动安装
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档