搭建轻量级的 Docker 容器云管理平台 Humpback docker


https://humpback.github.io/humpback/

帮助企业快速搭建轻量级的Docker容器云管理平台。 https://humpback.github.io/humpback

Components

Humpback 可以帮助企业快速搭建轻量级的 Docker 容器云管理平台,若将你的 Docker 主机接入到 Humpback 平台中,就能够为你带来更快捷稳定的容器操作体验。


一.安装 Docker:  https://abc.htmltoo.com/thread-531.htm

二.搭建私有仓

私有仓库为 Humpback 提供镜像存储基础服务,Humpback 涉及镜像查询、容器构建等功能都依赖于私有仓库服务。

 Docker 官方仓库 Distribution 在 hub.docker.com 的镜像名称为:registry

docker pull registry:latest
docker run -d -p 5000:5000 --restart=always -v /var/lib/registry/:/var/lib/registry/ -v /etc/docker/registry/config.yml:/etc/docker/registry/config.yml --name registry registry:latest

关于仓库配置说明请参见 configuration.md

curl http://localhost:5000/v2/_catalog
{"repositories":[]}

若能正常访问 registry 接口 _catalog,证明服务启动成功。

三.Zookeeper 集群部署

Humpback 默认选用 Zookeeper 来进行集群节点的注册和发现,后端需要具备一个 Zookeeper 集群。

Zookeeper 下载
示例采用 Zookeeper 3.4.11 版本,请确保在服务器上安装了 java open jdk7 运行环境,下载 Zookeeper 并解压。
cd /data/
wget http://91.cndo.org/zookeeper-3.4.11.tar.gz
tar -xzvf zookeeper-3.4.11.tar.gz
mv zookeeper-3.4.11 zookeeper
cd zookeeper
cp conf/zoo_sample.cfg conf/zoo.cfg
vim conf/zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/zkdata
dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1=192.168.2.80:2888:3888
server.2=192.168.2.81:2888:3888
server.3=192.168.2.82:2888:3888

mkdir -p /data/zookeeper/zkdata
mkdir -p /data/zookeeper/logs

以上安装流程三台服务器都照执行,接下来开始创建 zookeeper 集群并启动。

建立 Zookeeper 节点标识文件 myid
创建 myid 编号,依次在每台 Server 上执行,注意每台 Server 的 myid 要对应正确的编号
192.168.2.80
echo "1" > /data/zookeeper/zkdata/myid
192.168.2.81  
echo "2" > /data/zookeeper/zkdata/myid
192.168.2.82
echo "3" > /data/zookeeper/zkdata/myid

启动 Zookeeper
192.168.2.80
/data/zookeeper/bin/zkServer.sh start
192.168.2.81  
/data/zookeeper/bin/zkServer.sh start
192.168.2.82
/data/zookeeper/bin/zkServer.sh start

Zookeeper 状态检查
192.168.2.80
/data/zookeeper/bin/zkServer.sh status

如果 Zookeeper 启动失败或报错,可能有以下几个原因:
   1.zoo.cfg 文件配置出错:dataLogDir 指定的目录未被创建。
   2.myid 文件中的整数格式不对,或者与 zoo.cfg 中的 server 整数不对应。
   3.防火墙未打开 Zookeeper 服务端口,如 2888 和 3888。


三.部署 Humpback 管理站点

作为 Humpback 的直观展现,基于 Angular2 和 AdminLTE 构建的用于管理 docker 的网站。

# 创建一个目录,用来存储humpback-web的数据库文件
mkdir -p /data/humpback-web 
docker pull humpbacks/humpback-web:1.0.1
docker run -d --net=host --restart=always -e HUMPBACK_LISTEN_PORT=8012 -v /data/humpback-web/dbFiles:/humpback-web/dbFiles --name humpback-web humpbacks/humpback-web:1.0.1

启动成功之后,访问 http://localhost:8012 来确定是否部署成功。

如果要在宿主机访问,请使用虚拟机绑定的IP地址,另外,需要注意防火墙。

如果能够在浏览器中看到登录界面,那么就可以输入默认超级管理员账户:admin,密码:123456 进行登录。


四.部署 Humpback Agent

Humpback Agent 主要为 Humpback 平台提供容器访问功能。API 文档

从项目名称就很容易看出,这货就是一个代理,为Humpback管理站点提供数据的。

需要先在要被管理的机器上安装Docker环境(如果就在humpback这台虚拟机中试验,可以跳过,因为已经安装Docker),之后输入 docker version 查看一下版本号,我们主要关注其中的 API Version(待会要用)。
老规矩,我们的 humpback-agent 也必然是一个镜像,那么执行如下方式安装下:
# 为了简单使用,先不考虑集群功能
# 注意,之前我们在 docker version 中记录的 API Version 要排上用场了,
# 以下命令中有个环境变量 DOCKER_API_VERSION ,需要被设定为我们记录的API VERSION的值。
docker run -d -ti --net=host --restart=always -e DOCKER_API_VERSION=v1.26 -v /var/run/:/var/run/:rw --name=humpback-agent humpbacks/humpback-agent:1.2.5

当启动成功之后,我们的 humpback-agent 也部署成功了。


 三台服务器:192.168.2.80, 192.168.2.81, 192.168.2.82 都需要部署 Humpback Agent 用于实现本地镜像、容器管理。

docker version  # 检查 Docker API 版本号:1.26
启动 Humpback Agent

    1、集群模式启动
docker pull humpbacks/humpback-agent:latest
docker run -d -ti --net=host --restart=always \
 --name=humpback-agent \
 -e DOCKER_API_VERSION=v1.21 \
 -e DOCKER_AGENT_IPADDR=0.0.0.0 \
 -e DOCKER_CLUSTER_ENABLED=true \
 -e DOCKER_CLUSTER_URIS=zk://192.168.2.80:2181,192.168.2.81:2181,192.168.2.82:2181 \
 -e DOCKER_CLUSTER_NAME=humpback/center \
 -v /var/run/:/var/run/:rw \
 humpbacks/humpback-agent:latest
 
docker ps -a
CONTAINER ID    IMAGE                           COMMAND               CREATED        STATUS         PORTS         NAMES
b1ac4a82c2dd    humpbacks/humpback-agent:1.2.5   "./humpback-agent"   3 minutes ago  20 seconds ago              humpback-agent
    
    2、非集群模式启动
docker pull humpbacks/humpback-agent:latest
docker run -d -ti --net=host --restart=always --name=humpback-agent -e DOCKER_API_VERSION=v1.21 -e DOCKER_CLUSTER_ENABLED=false -v /var/run/:/var/run/:rw humpbacks/humpback-agent:latest
 
docker ps -a
CONTAINER ID    IMAGE                           COMMAND               CREATED        STATUS         PORTS         NAMES
b1ac4a82c2dd    humpbacks/humpback-agent:1.2.5   "./humpback-agent"   3 minutes ago  20 seconds ago               humpback-agent

环境变量与参数
   DOCKER_API_VERSION=v1.26 一定要与上面的版本号对应一致。
   DOCKER_AGENT_IPADDR=0.0.0.0 启动容器时,集群模式下节点注册到集群的本地网络地址,默认为:0.0.0.0 随机选择一个有效本地地址,若本地为双网卡则需选择一个IP地址。
   DOCKER_CLUSTER_ENABLED=true 如果当前 Agent 需要被集群模式调度, 那么 Cluster Mode 模式请设置为 true,否则关闭集群调度该节点为 Single Mode 模式。
   DOCKER_CLUSTER_URIS=zk://192.168.2.80:2181,192.168.2.81:2181,192.168.2.82:2181 为先前配置的 Zookeeper 集群地址信息。
   DOCKER_CLUSTER_NAME=humpback/center 集群名称,要与 Humpback Center 配置一致。
   
创建分组,注册服务器: 
三台服务器都成功启动 Humpback Agent 容器后,进入 Humpback Web 站点,展开左侧 Manage 功能点击 Groups 创建一个分组:MyCluster
   并将三台节点服务器加入到该组中并点击 Save 即可。
Humpback Add Group:  进入分组页面,可以查看三台集群服务器信息。


四.humpback-center

Humpback Center 主要为 Humpback 平台提供集群容器调度服务,以集群中心角色实现各个 Group 的容器分配管理。

API 文档 , 需要集群调度的 Group 要在设置中将 Cluster Mode 开关打开即可。

启动 Humpback Center
$ docker pull humpbacks/humpback-center:1.2.4
$ docker run -d -ti --net=host --restart=always \
 --name=humpback-center \
 -e HUMPBACK_SITEAPI=http://192.168.2.80:8012/api \
 -e CENTER_LISTEN_PORT=:8589 \
 -e CENTER_API_ENABLECORS=true \
 -e DOCKER_CLUSTER_URIS=zk://192.168.2.80:2181,192.168.2.81:2181,192.168.2.82:2181 \
 -e DOCKER_CLUSTER_NAME=humpback/center \
 -v /opt/app/humpback-center/cache:/opt/humpback-center/cache \
 -v /opt/app/humpback-center/logs:/opt/humpback-center/logs \
 humpbacks/humpback-center:1.2.4
$ docker ps -a
CONTAINER ID    IMAGE                           COMMAND                  CREATED         STATUS         PORTS         NAMES
a1640bf8c956    humpbacks/humpback-center:1.2.4  "./humpback-center"     15 minutes ago  45 seconds ago              humpback-center
环境变量与参数
   HUMPBACK_SITEAPI=http://192.168.2.80:8012/api Humpback-Web 站点地址,注意要带上 /api。
   CENTER_LISTEN_PORT=:8589 Humpback Center 的 API 默认端口为:8589。
   CENTER_API_ENABLECORS=true Humpback Center API 是否支持跨域访问。
   DOCKER_CLUSTER_URIS=zk://192.168.2.80:2181,192.168.2.81:2181,192.168.2.82:2181 为先前配置的 Zookeeper 集群地址信息。
   DOCKER_CLUSTER_NAME=humpback/center 集群名称,要与 Humpback Agnet 配置一致。
   -v /opt/app/humpback-center/cache 集群容器信息持久化目录,建议不要手动更改与删除。
   -v /opt/app/humpback-center/logs 系统日志目录。


系统角色

Humpback Website

Humpback 管理站点,主要提供系统可视化管理,功能为分组管理,权限管理,仓库镜像查询,集群管理。

Humpback Center

Humpback 集群中心,通过调度策略对集群实施容器批量创建、操作、删除、升级、故障迁移、实例调整等功能;同时负责集群节点的发现与管理。

Humpback Agent

Humpback 集群节点,集群中存在多个节点等待被调度,并在 Humpback Center 中被分组管理,通过节点发现模块注册到集群中心并维持心跳。

在管理分组时可以将 Humpback Agent 节点对应的 IP 地址加入到多个分组中,当发生容器调度时,组与组之间容器相互隔离互不影响。


参考网址: https://www.cnblogs.com/humin/p/6859690.html

签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回