当前位置:首页 > 技术 > 正文内容

Humpback集群部署指南

访客 技术 2026年6月22日 16

环境准备

准备三台已安装Docker的服务器

192.168.215.81
192.168.215.82
192.168.215.83

所有服务器均需安装JDK

https://www.cnblogs.com/ff111/p/11868976.html

部署流程参考

https://humpback.github.io/humpback/#/zh-cn/run-humpback-components

1.Zookeeper集群部署

在三台服务器上执行以下相同操作:

cd /optmkdir container_service    #创建container_service目录
cd /container_service    #进入container_service目录<br></br>
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz    #获取zookeeper安装包<br></br><br></br>
tar -xzvf zookeeper-3.4.14.tar.gz    #解压文件<br></br>
mv zookeeper-3.4.14 zookeeper_cluster     #重命名目录<br></br><br></br>cd zookeeper_cluster

修改配置文件

cp conf/zoo_sample.cfg conf/zoo.cfg<br></br>vi conf/zoo.cfg

修改以下参数:

# 每个tick的毫秒数
tickTime=2000
# 初始同步阶段可以经历的tick数
initLimit=10
# 发送请求和获取确认之间可以经过的tick数
syncLimit=5
# 存储快照的目录
dataDir=/container_service/zookeeper_cluster/node_data
dataLogDir=/container_service/zookeeper_cluster/logs
# 客户端连接的端口
clientPort=2181
# 服务器节点配置
server.1=192.168.215.81:2888:3888
server.2=192.168.215.82:2888:3888
server.3=192.168.215.83:2888:3888

创建必要目录

mkdir -p /container_service/zookeeper_cluster/node_data
mkdir -p /container_service/zookeeper_cluster/logs

三台服务器均执行以上步骤,接下来创建Zookeeper集群并启动。

为每个节点创建标识文件node_id

192.168.215.81

echo "1" > /container_service/zookeeper_cluster/node_data/node_id

192.168.215.82

echo "2" > /container_service/zookeeper_cluster/node_data/node_id

192.168.215.83

echo "3" > /container_service/zookeeper_cluster/node_data/node_id

分别在各节点启动zookeeper

/container_service/zookeeper_cluster/bin/zkServer.sh start

查看集群状态

/container_service/zookeeper_cluster/bin/zkServer.sh status

重启说明:服务器重启后需要手动启动服务

2.部署私有镜像仓库

选择 192.168.215.81 作为私有仓库服务器

mkdir -p /data/registry
docker pull registry:2.5.1

启动仓库服务

将配置文件复制到 /etc/docker/registry/config.yml

docker cp registry:/etc/docker/registry/config.yml /etc/docker/registry/config.yml

配置文件内容:

http:
  addr: :5000
  secret: registry_secret_key
  headers:
    X-Content-Type-Options: [nosniff]
    Access-Control-Allow-Headers: ['Origin,Accept,Content-Type,Authorization']
    Access-Control-Allow-Origin: ['*']
    Access-Control-Allow-Methods: ['GET,POST,PUT,DELETE']

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

测试仓库访问

curl http://192.168.215.81:5000/v2/_catalog

参考:https://blog.csdn.net/twingao/article/details/81042563

3.部署Humpback管理界面

在 192.168.215.81 上部署Humpback Web界面,端口设置为:8012。 默认访问端口为:80,如需自定义端口,请在创建容器时指定 -e HUMPBACK_LISTEN_PORT=XXXX 参数。 /container_service/humpback-web/dbFiles 目录存储系统持久化数据,包含站点管理和分组信息,请妥善保存。

mkdir -p /container_service/humpback-web
docker run -d --net=host --restart=always -e HUMPBACK_LISTEN_PORT=8012 -v /container_service/humpback-web/dbFiles:/humpback-web/dbFiles --name humpback-web humpbacks/humpback-web:latest

访问界面,浏览器输入:http://192.168.215.81:8012 默认账户:admin 密码:123456

4.部署Humpback代理

在三台服务器(192.168.215.81, 192.168.215.82, 192.168.215.83)上部署Humpback Agent,用于本地镜像和容器管理。

检查Docker版本

docker version

验证Docker API连接

启动Humpback Agent

<br></br>docker run -d -ti --net=host --restart=always --name=container_agent -e DOCKER_API_VERSION=v1.32 -e DOCKER_AGENT_IPADDR=0.0.0.0 -e DOCKER_CLUSTER_ENABLED=true -e DOCKER_CLUSTER_URIS=zk://192.168.215.81:2181,192.168.215.82:2181,192.168.215.83:2181 -e DOCKER_CLUSTER_NAME=humpback/center -v /var/run/:/var/run/:rw humpbacks/humpback-agent:latest<br></br><br></br>docker ps -a<br></br>

创建管理组并注册服务器

http://192.168.215.81:8012/

5.部署Humpback中心服务

Humpback Center为平台提供集群容器调度服务,作为集群中心角色实现各管理组的容器分配管理。 需要集群调度的组需在设置中启用集群模式。

启动Humpback Center

docker pull humpbacks/humpback-center:latest
docker run -d -ti --net=host --restart=always --name=cluster_center -e HUMPBACK_SITEAPI=http://192.168.215.81:8012/api -e CENTER_LISTEN_PORT=:8589 -e CENTER_API_ENABLECORS=true -e DOCKER_CLUSTER_URIS=zk://192.168.215.81:2181,192.168.215.82:2181,192.168.215.83:2181 -e DOCKER_CLUSTER_NAME=humpback/center -v /container_service/cluster_center/cache:/opt/humpback-center/cache -v /container_service/cluster_center/logs:/opt/humpback-center/logs -v /container_service/cluster_center/data:/opt/humpback-center/data humpbacks/humpback-center:latest
docker ps -a

常见问题处理:

错误:Get https://192.168.215.81:5000/v2/: http: server gave HTTP response to HTTPS client

解决方案:

在Docker客户端创建配置文件

{ "insecure-registries":["192.168.215.81:5000"] }

注意: 此配置应用于Docker客户端,允许其以不安全的HTTP方式访问镜像仓库,请填入提供服务的服务器IP和端口。

重启Docker服务

systemctl daemon-reload <br></br>systemctl restart docker.service <br></br>systemctl enable docker.service

防火墙配置

#启用防火墙 
ufw enable

#禁用防火墙 
ufw disable

#查看防火墙状态 
ufw status

系统资源监控

#查看内存使用
free -m
#查看CPU使用情况
top
#查看特定进程的线程
top -H -p pid

交换区管理(Docker环境需关闭交换区)

#禁用交换区
sudo swapoff -a
#启用交换区
sudo swapon -a

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。