Harbor安装与配置
大约 4 分钟容器化技术Harbor安装配置
Harbor安装与配置
Harbor安装方式
Harbor提供了多种安装方式,以适应不同的使用场景和需求。
1. 在线安装
在线安装会从Docker Hub下载Harbor镜像,适用于网络环境良好的情况。
2. 离线安装
离线安装包包含了所有必要的镜像和文件,适用于网络受限的环境。
3. Helm Chart安装
适用于Kubernetes环境,通过Helm进行部署。
环境准备
硬件要求
资源 | 最低配置 | 推荐配置 |
---|---|---|
CPU | 2 CPU | 4 CPU |
内存 | 4 GB | 8 GB |
磁盘 | 40 GB | 160 GB |
软件要求
- Docker 17.06.0-ce+
- Docker Compose 1.18.0+
- OpenSSL
端口要求
- 80: HTTP访问
- 443: HTTPS访问
- 4443: Harbor组件间通信
离线安装步骤
1. 下载安装包
# 下载Harbor离线安装包
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
# 验证文件完整性
sha256sum harbor-offline-installer-v2.7.0.tgz
2. 解压安装包
# 解压安装包
tar -zxvf harbor-offline-installer-v2.7.0.tgz
# 进入Harbor目录
cd harbor
3. 配置Harbor
# 复制配置模板
cp harbor.yml.tmpl harbor.yml
# 编辑配置文件
vim harbor.yml
配置文件主要参数:
# Harbor服务器的主机名
hostname: harbor.example.com
# HTTP访问配置
http:
port: 80
# HTTPS访问配置(推荐启用)
https:
port: 443
certificate: /your/certificate/path
private_key: /your/private/key/path
# Harbor管理员密码
harbor_admin_password: Harbor12345
# 数据库密码
database:
password: root123
# 数据存储路径
data_volume: /data
# Clair扫描器配置
clair:
updaters_interval: 12
# Trivy扫描器配置
trivy:
ignore_unfixed: false
skip_update: false
insecure: false
4. 安装Harbor
# 执行安装脚本
sudo ./install.sh
# 安装时指定组件
sudo ./install.sh --with-notary --with-clair --with-trivy --with-chartmuseum
参数说明:
--with-notary
: 安装Notary用于镜像签名--with-clair
: 安装Clair用于漏洞扫描--with-trivy
: 安装Trivy用于漏洞扫描--with-chartmuseum
: 安装ChartMuseum用于Helm Chart存储
5. 验证安装
# 查看运行状态
docker-compose ps
# 查看Harbor日志
docker-compose logs
# 访问Harbor Web界面
# 浏览器访问 https://harbor.example.com
# 默认用户名: admin
# 默认密码: Harbor12345 (在harbor.yml中配置)
在线安装步骤
1. 下载安装脚本
# 下载安装脚本
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-online-installer-v2.7.0.tgz
# 解压安装包
tar -zxvf harbor-online-installer-v2.7.0.tgz
cd harbor
2. 配置和安装
后续步骤与离线安装相同。
Kubernetes环境安装
1. 添加Helm仓库
# 添加Harbor Helm仓库
helm repo add harbor https://helm.goharbor.io
# 更新Helm仓库
helm repo update
2. 安装Harbor
# 创建命名空间
kubectl create namespace harbor
# 安装Harbor
helm install harbor harbor/harbor \
--namespace harbor \
--set expose.type=loadBalancer \
--set externalURL=https://harbor.example.com \
--set harborAdminPassword=Harbor12345
3. 验证安装
# 查看Pod状态
kubectl get pods -n harbor
# 查看服务
kubectl get svc -n harbor
Harbor配置详解
1. 基础配置
# hostname: Harbor服务器的主机名
hostname: harbor.example.com
# http: HTTP访问配置
http:
port: 80
# https: HTTPS访问配置
https:
port: 443
certificate: /etc/certificates/harbor.crt
private_key: /etc/certificates/harbor.key
# external_url: 外部访问URL
external_url: https://harbor.example.com
2. 数据库配置
# database: 数据库配置
database:
password: root123
max_idle_conns: 100
max_open_conns: 900
3. 存储配置
# data_volume: 数据存储路径
data_volume: /data
# storage_service: 存储服务配置
storage_service:
ca_bundle: /etc/harbor/ca/ca.crt
4. 安全配置
# uaa: UAA配置
uaa:
ca_file: /etc/harbor/ca/uaa_ca.crt
# core: 核心服务配置
core:
cert: /etc/harbor/certificates/core.crt
key: /etc/harbor/certificates/core.key
Harbor常用管理命令
1. 启动和停止
# 启动Harbor
docker-compose up -d
# 停止Harbor
docker-compose down
# 重启Harbor
docker-compose restart
2. 备份和恢复
# 备份数据库
docker exec harbor-db pg_dump -U postgres registry > registry_backup.sql
# 恢复数据库
docker exec -i harbor-db psql -U postgres registry < registry_backup.sql
3. 日志管理
# 查看Harbor日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f core
# 清理日志
docker-compose down -v
Harbor配置优化
1. 性能优化
# 优化数据库连接
database:
max_idle_conns: 200
max_open_conns: 1000
# 优化存储
storage_service:
redirect:
disable: false
2. 安全加固
# 启用HTTPS
https:
port: 443
certificate: /etc/certificates/harbor.crt
private_key: /etc/certificates/harbor.key
# 配置安全头
http:
headers:
X-Frame-Options: DENY
Content-Security-Policy: frame-ancestors 'none'
3. 镜像清理策略
# 配置垃圾回收
docker exec harbor-core /harbor/entrypoint.sh -- gc
# 定时清理脚本
#!/bin/bash
docker exec harbor-core /harbor/entrypoint.sh -- gc --delete-untagged=true
常见问题及解决方案
1. 启动失败
# 检查端口占用
netstat -tlnp | grep ':80\|:443'
# 检查Docker状态
systemctl status docker
# 查看日志
docker-compose logs
2. 证书问题
# 检查证书路径
ls -l /etc/certificates/
# 验证证书有效性
openssl x509 -in /etc/certificates/harbor.crt -text -noout
3. 存储空间不足
# 检查磁盘使用情况
df -h
# 清理无用镜像
docker image prune -a
# 执行垃圾回收
docker exec harbor-core /harbor/entrypoint.sh -- gc
总结
Harbor的安装和配置相对简单,但需要根据实际环境进行适当的调整和优化。在生产环境中,建议启用HTTPS、配置高可用架构,并定期进行备份和维护。通过合理的配置和管理,Harbor可以为企业提供稳定、安全的镜像仓库服务。