云计算

Harbor部署

2019-05-07  本文已影响1人  大鹏之动

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。

Harbor架构

Harbor架构

主要的特征

安装步骤

下载安装包

wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz
tar -zxf harbor-offline-installer-v1.7.5.tgz
cd harbor

配置harbor.cfg

这个文件包含2个部分,一个是必须参数,一个是可选项参数
必要参数:这些参数被修改,如果需要生效需要运行install.sh才能生效;

可选参数:可选择参数是选择性更改,你可以保留默认在web portal上也可以进行修改。假如你改动了harbor.cfg,只能在首次启动有效,再次修改将被忽略。注意:当你选定了auth_mode后并且注册和创建任何用户在harbor,认证模式就不能更改了。

email_server = smtp.mydomain.com
email_server_port = 25
email_identity =
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin sample_admin@mydomain.com
email_ssl = false
email_insecure = false

配置存储

默认Harbor使用本地存储。在生产环境中你可能考虑使用其他存储,如S3,OpenStack Swift,Ceph等。

如下:

registry_storage_provider_name=swift
registry_storage_provider_config="username: admin, password: ADMIN_PASS, authurl: http://keystone_addr:35357/v3/auth, tenant: admin, domain: default, region: regionOne, container: docker_images"

安装harbor并启动harbor

一旦配置好harbor.cfg和存储,你就可以开始使用install.sh脚本安装。

$sudo ./install.sh

假如安装过程没有任何异常,可以使用浏览器打开:http://域名(harbor.cfg配置的hostname),默认使用admin/Harbor12345帐号密码登录。登录后,创建一个项目,如myproject。你能使用 docker命令登录并push镜像。注意:默认安装的是使用HTTP,你需要在docker客户端程序添加一个--insecure-registry选项并重启Docker服务。

$ docker login reg.yourdomain.com             #登录后会把密码保存在:/root/.docker/config.json
$ docker push reg.yourdomain.com/myproject/myrepo:mytag
$ sudo ./install.sh --with-clair
$ sudo ./install.sh --with-chartmuseum

配置Harbor通过 HTTPS访问

Harbor默认不带有任何认证,使用HTTP访问服务,这种方式很容易配置并且运行,适合于开发和测试环境,如果在生产环境,推荐启动HTTPS。请参照链接:https://github.com/goharbor/harbor/blob/master/docs/configure_https.md

管理Harbor的生命周期

使用docker-compase管理,需要运行在harbor的目录,下面包含docker-compose.yaml(或yml)文件

$ docker-compose stop
Stopping nginx             ... done
Stopping harbor-portal     ... done
Stopping harbor-jobservice ... done
Stopping harbor-core       ... done
Stopping registryctl       ... done
Stopping harbor-db         ... done
Stopping registry          ... done
Stopping redis             ... done
Stopping harbor-log        ... done
$docker-compose start
Starting log         ... done
Starting registry    ... done
Starting registryctl ... done
Starting postgresql  ... done
Starting adminserver ... done
Starting core        ... done
Starting portal      ... done
Starting redis       ... done
Starting jobservice  ... done
Starting proxy       ... done
$ sudo docker-compose down -v
$ vim harbor.cfg
$ sudo prepare
$ sudo docker-compose up -d
$ sudo docker-compose down -v
$ rm -r /data/database
$ rm -r /data/registry

管理带有附加组建(Notary/Clair/chartmuseum)的harbor

管理命令:

$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml -f ./docker-compose.chartmuseum.yml down -v
$ vim harbor.cfg
$ sudo prepare --with-notary --with-clair --with-chartmuseum
$ sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml -f ./docker-compose.chartmuseum.yml up -d

持久化数据和日志文件

默认Harbor持久化数据在这台主机的/data目录,即使Harbor的容器删除或者重建都会保持不变。另外Harbor使用rsyslog为每个容器收集日志。默认日志文件存放在/var/log/harbor目录,可以方便定位问题。

修改Harbor自定义的端口

性能调优

默认Harbor限制Clair容器占用CPU资源,为了避免过度使用CPU,可以修改docker-compose.clair.yml文件。

故障定位

$ sudo docker-compose ps

假如有一个容器不是UP状态,检查这个容器的日志文件,在/var/log/harbor目录下。

Clair不能在线更新缺陷库(一般更新时间比较长,需要等待)

当Harbor安装的环境没有外网访问,Clair不能获取到公共的缺陷库。在这种情况下,需要管理员手动去更新缺陷库。
解决这个思路:部署一台Clair在外网,让其更新到最新的缺陷库,然后将Postgres的2个库导出,然后导进内网Clair即可。参照连接:https://github.com/goharbor/harbor/blob/master/docs/import_vulnerability_data.md

参考链接

https://docs.docker.com/engine/security/trust/content_trust/
https://coreos.com/clair/docs/2.0.1/
https://github.com/goharbor/harbor/blob/master/docs/user_guide.md
https://github.com/appc/spec
https://github.com/goharbor/harbor/blob/master/docs/configure_https.md
https://github.com/goharbor/harbor/blob/master/docs/import_vulnerability_data.md
https://github.com/goharbor/harbor/wiki/Architecture-Overview-of-Harbor

上一篇 下一篇

猜你喜欢

热点阅读