1 - Harbor单节点安装


    2、软件

    1、Harbor程序下载

    可以通过Harbor的发布页面下载,也可以通过页面下载最新的在线安装包。

    tar xvf harbor-online-installer-<version>.tgz

    3、修改配置文件

    解压压缩包会得到harbor文件夹,harbor.cfg配置文件位于文件夹根目录。在harbor.cfg中有两类参数,必需参数和可选参数。

    • 必要参数:需要在配置文件中设置这些参数。如果用户更新harbor.cfg并运行install.sh脚本以重新安装Harbor,更改的参数将生效。

    • 可选参数:这些参数对于更新是可选的,即用户可以将它们保留为默认值,并在启动Harbour后在Web UI上更新它们。如果已经配置harbor.cfg,这些参数只会在首次启动Harbour时生效。harbor.cfg将忽略对这些参数的后续修改。

    参数如下所述 - 请注意,至少需要更改hostname参数。

    • hostname:目标主机的主机名,用于访问UI和Harbor服务。它应该是目标计算机的IP地址或域名(FQDN),例如,192.168.1.10reg.yourdomain.com。不要使用localhost或127.0.0.1作为主机名,因为外部客户端需要访问Harbor服务!

    • ui_url_protocol :( httphttps。默认为http)用于访问UI和令牌/通知服务的协议。如果启用了公证,则此参数必须为https。默认情况下,这是http。要设置https协议,请参阅使用HTTPS访问配置Harbor

    • db_password:用于db_auth的MySQL数据库的root密码。生产环境请修改此密码

    • max_job_workers :(默认值为3)作业服务中的最大复制工作数。对于每个镜像复制作业,程序将存储库的所有标记同步到远程目标。增加此数量可以在系统中实现更多并发复制作业。但是,由于每个复制进程都消耗一定的网络/CPU/IO资源,请根据主机的硬件资源仔细选择该参数的值

    • customize_crt:(onoff,默认为on),如果此属性on,准备脚本创建私钥和根证书,用于生成/验证registry的令牌。当外部源提供密钥和根证书时,将此属性设置为off。有关详细信息,请参阅。

    • ssl_cert:SSL证书的路径,仅在协议设置为https时应用

    • ssl_cert_key:SSL密钥的路径,仅在协议设置为https时应用

    • secretkey_path:用于加密或解密复制策略中远程Harbor密码的密钥路径。

    • log_rotate_count:日志文件在被删除之前会被轮转log_rotate_count次。如果count为0,则删除旧版本而不是轮转。

    • Email settings:Harbor需要这些参数才能向用户发送“密码重置”电子邮件,并且仅在需要该功能时才做配置。另外,请注意,在默认情况下SSL连接没有启用,如果您的SMTP服务器需要SSL,那么您应该通过设置email_ssl = TRUE参数来启用SSL,但不支持STARTTLS。如果电子邮件服务器使用自签名证书或不受信任证书,则需要设置email_insecure = true。有关email_identity的详细说明,请参阅rfc2595
    • harbor_admin_password:管理员的初始密码。此密码仅在Harbor首次启动时生效。之后将忽略此设置,并且应在UI中设置管理员密码。请注意:默认用户名/密码为admin/Harbor12345

    • auth_mode:使用的身份验证类型。默认情况下,它是db_auth,即凭据存储在数据库中。对于LDAP身份验证,请将其设置为ldap_auth

    重要信息:从现有Harbor实例升级时,必须确保在启动新版本的Harbor之前,harbor.cfg配置文件中auth_mode相同。否则,用户可能无法在升级后登录。

    • ldap_url:LDAP连接URL(例如ldaps://ldap.mydomain.com)。 仅在auth_mode设置为ldap_auth时使用

    • ldap_search_pwd:ldap_searchdn指定的用户密码。

    • ldap_basedn:查找用户的基本DN,例如ou=people,dc=mydomain,dc=com仅在auth_mode设置为ldap_auth时使用。

    • ldap_filter:用于查找用户的搜索过滤器,例如(objectClass=person)

    • ldap_uid:用于在LDAP搜索期间匹配用户的属性,它可以是uid,cn,email或其他属性。

    • ldap_scope:搜索用户的范围,0-LDAP_SCOPE_BASE,1-LDAP_SCOPE_ONELEVEL,2-LDAP_SCOPE_SUBTREE。默认值为2。

    • self_registration :( onoff。默认on)启用/禁用用户自助注册功能。禁用时,新用户只能由管理员用户创建,只有管理员可以在Harbor中创建新用户。 *注意:当authmode设置为ldap_auth时始终*禁用自助注册功能,并忽略此设置。_

    • token_expiration:令牌服务创建的令牌到期时间(以分钟为单位),默认为30分钟。

    • project_creation_restriction:用于控制用户有权创建项目的设置。默认情况下,每个人都可以创建一个项目,设置为“adminonly”,只有管理员才能创建项目。

    默认情况下,Harbor将镜像存储在本地文件系统中。在生产环境中,您可以考虑使用其他存储后端而不是本地文件系统,如S3,OpenStack Swift,Ceph等。您需要更新的是storage文件中的部分common/templates/registry/config.yml。例如,如果您使用Openstack Swift作为存储后端,则该部分可能如下所示:

    1. storage:
    2. swift:
    3. username: admin
    4. password: ADMIN_PASS
    5. tenant: admin
    6. domain: default
    7. region: regionOne
    8. container: docker_images

    注意:有关注册表存储后端的详细信息,请参阅。

    默认情况下,Harbor监听80(HTTP)和443(HTTPS,如果已配置),您可以使用自定义命令对其进行修改。

    • 对于HTTP协议1、修改 docker-compose.yml

    将第一个80修改为自定义端口,例如8888:80

    1. proxy:
    2. image: library/nginx:1.11.5
    3. restart: always
    4. volumes:
    5. - ./config/nginx:/etc/nginx
    6. ports:
    7. - 8888:80
    8. - 443:443
    9. depends_on:
    10. - mysql
    11. - ui
    12. - log
    13. logging:
    14. driver: "syslog"
    15. options:
    16. syslog-address: "tcp://127.0.0.1:1514"
    17. tag: "proxy"

    2、修改harbor.cfg,将端口添加到参数“hostname”

    hostname = 192.168.0.2:8888

    • 对于HTTPS协议方法同

    在harbor文件夹中有install.sh脚本,一旦harbor.cfg和存储后端(可选)配置完成,就可以镜像Harbor安装。请注意,在线安装需要一些时间从Docker hub下载Harbor镜像,具体根据实际网络情况。

    • 默认安装(没有Notary/Clair)sudo ./install.sh

    如果一切正常,您应该能够打开浏览器访问http://reg.yourdomain.com/上的管理门户(reg.yourdomain.comharbor.cfg配置的主机名,默认管理员用户名/密码为admin/Harbor12345)。

    登录管理门户并创建一个新项目,例如: myproject。然后,您可以使用docker命令登录和推送镜像。默认情况下,Harbor的默认安装使用HTTP协议,而Docker默认信任https协议。所以,要想docker命令登录和推送镜像,需要添加—insecure-registry到docker 配置文件并重启docker服务。

    • 使用Notary安装要使用Notary服务安装Harbour,请在运行install.sh时添加参数:

    sudo ./install.sh —with-notary

    注意:使用notary安装,参数ui_url_protocol必须设置为“https”。

    • 使用Clair安装要使用Clair服务安装Harbour,请在运行install.sh时添加参数:

    sudo ./install.sh —with-clair

    • 同时安装Clair和Notarysudo ./install.sh —with-notary —with-clair

    Harbor不附带任何证书,默认情况下使用HTTP来处理请求。虽然这使得设置和运行相对简单 - 特别是对于开发或测试环境 - 但不建议用于生产环境。要启用HTTPS,请参阅。

    • 开始、停止、重启您可以使用docker-compose来管理Harbor的生命周期。一些有用的命令列出如下(必须与docker-compose.yml在同一目录中运行)。

    sudo docker-compose start/stop/restart

    • 更新配置要更改Harbour的配置,请先停止现有的Harbor实例并进行更新harbor.cfg。然后运行prepare脚本以填充配置。最后重新创建并启动Harbor的实例:
    1. sudo docker-compose down -v
    2. sudo vim harbor.cfg
    3. sudo prepare
    4. sudo docker-compose up -d
    • 删除Harbor的容器,同时将镜像数据和Harbor的数据库文件保存在文件系统上sudo docker-compose down -v

    • 删除Harbor的数据库和镜像数据(用于干净的重新安装)

    1. rm -r /data/database
    2. rm -r /data/registry

    2、与notary或者Clair一起安装时管理Harbor的生命周期

    当Harbour与Notary或者Clair一起安装时,docker-compose命令需要指定一个或者两个额外的模板文件。用于管理Harbour生命周期的docker-compose命令是:

    1. sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml [ up|down|ps|stop|start ]
    • 如果要在使用Notary安装Harbor时更改配置并重新部署Harbour,则应使用以下命令:
    1. sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml down -v
    2. sudo vim harbor.cfg
    3. sudo prepare --with-notary
    4. sudo docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml up -d

    默认情况下,镜像数据保留在主机的/data/目录中。即使Harbor的容器被移除或重新创建,此数据仍保持不变。此外,Harbor使用rsyslog来收集每个容器的日志。默认情况下,这些日志文件存储在目标主机上的目录中以进行故障排除。

    默认情况下,Harbor将Clair容器的CPU使用率限制为150000,并避免耗尽所有CPU资源。这在docker-compose.clair.yml文件中定义,您可以根据硬件配置对其进行修改。

    如果容器不是UP状态,检查目录容器的日志文件/var/log/harbor。例如,如果容器harbor-ui未运行,则应查看日志文件ui.log。