溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Harbo如何使用

發(fā)布時間:2021-12-14 11:30:48 來源:億速云 閱讀:174 作者:iii 欄目:云計算

這篇文章主要講解了“Harbo如何使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Harbo如何使用”吧!

基本架構(gòu)

Harbor安裝和配置指導(dǎo)

Harbor 可以使用以下三種方式進行安裝部署:

  • 在線安裝: 使用者可以直接從docker hub上下載harbor的官方鏡像。

  • 離線安裝: 使用者需要下載源碼包,并進行自己構(gòu)建images。源碼包比較大

  • Virtual Appliance: 一般使用這種方式在第三方平臺搭建一個私有倉庫作為平臺的組建比如vsphere等,需要下載OVA 版本的Harbor.

官方下載頁面 請點擊我 .

需要安裝Harbor's virtual appliance,請點擊我.

本篇指導(dǎo)主要講解通過使用在線和離線方式去一步步安裝和配置Harbor.安裝的步驟基本上都是相同的。

如果用戶運行了老版本的harbor,可能需要遷移數(shù)據(jù)到新的數(shù)據(jù)庫隊列中,詳細(xì)的步驟請**點擊我**

另外在kubernetes上面部署的步驟和看以下鏈接**harbor on kubernets **

Harbor依賴

Harbor 被作為一個docker容器部署在服務(wù)區(qū)上,因此,他能夠被部署在任何linux發(fā)行版本。目標(biāo)主機上需要安裝python,docker,以及docker-compose工具。

  • Python 需要 2.7+. 需要注意的是,最好安裝對應(yīng)linux發(fā)型版本的python。

  • Docker engine 需要1.10+ 目前比較新的版本1.12. docker安裝

  • Docker Compose 需要 1.6.0+. Compose安裝

Harbor安裝與配置

安裝步驟為以下幾個部分:

  1. 下載安裝包

  2. 修改相關(guān)配置 harbor.cfg;

  3. 運行 install.sh 去安裝和啟動harbor;

1.下載安裝包

點擊鏈接下載二進制包 Harbor下載 . 選擇一個在線或者離線包進行下載. 使用 tar 命令解壓下載的源碼包

在線包安裝:

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

離線包安裝:

    $ tar xvf harbor-offline-installer-<version>.tgz

2.配置 Harbor

配置參數(shù)被放在文件 harbor.cfg 中. 詳細(xì)參數(shù)講解 至少得配置 hostname 參數(shù)

  • hostname: 配置目標(biāo)主機的主機名, 被用來訪問Harbor ui 和鏡像倉庫的,可以配置為ip地址和全域名,比如 192.168.1.10 or reg.yourdomain.com. 不要使用 localhost or 127.0.0.1 為主機名

  • ui_url_protocol: (http or https. 默認(rèn)協(xié)議為 http) 該協(xié)議被用來訪問 the UI and the token/notification 服務(wù). 默認(rèn)是 http. 想要設(shè)置https協(xié)議,請看鏈接 配置Harbor支持https協(xié)議.

  • Email settings: 配置Harbor來發(fā)送郵件,當(dāng)然改配置并不是必須的 .注意:默認(rèn)的ssl鏈接沒有被啟用,如果SMTP需要ssl支持,可以設(shè)置以下參數(shù)以支持。

  • email_ssl = true

      * email_server = smtp.mydomain.com 
      * email_server_port = 25
      * email_username = sample_admin@mydomain.com
      * email_password = abc
      * email_from = admin <sample_admin@mydomain.com>  
      * email_ssl = false


  • harbor_admin_password: 設(shè)置管理員內(nèi)部密碼,該密碼緊緊在第一次啟動Harbor的時候生效.在之后這個設(shè)置被忽略,管理員的密碼將在UI中重新設(shè)置。 默認(rèn)的用戶名和密碼如下: admin/Harbor12345 .

  • auth_mode: 被用來認(rèn)證的方式,默認(rèn)使用的是 db_auth,該認(rèn)證會被肢解存儲到數(shù)據(jù)庫中。 如果需要設(shè)置LDAP方式認(rèn)證需要使用ldap_auth.

  • ldap_url: LDAP認(rèn)證方式的URL (e.g. ldaps://ldap.mydomain.com). 當(dāng) auth_mode 被設(shè)置為ldap_auth 的時候。

  • ldap_searchdn: 鏈接LDAP/AD服務(wù)的用戶域(e.g. uid=admin,ou=people,dc=mydomain,dc=com).

  • ldap_search_pwd: 為上面設(shè)定的用戶域設(shè)置密碼 ldap_searchdn.

  • ldap_basedn: 基礎(chǔ)域為方便尋找一個用戶e.g. ou=people,dc=mydomain,dc=com. 僅當(dāng) auth_mode is 設(shè)置為ldap_auth的時候才使用

  • ldap_filter:用戶搜索過濾 (objectClass=person).

  • ldap_uid: 該參數(shù)被用來匹配一個LDAP搜索的用戶,可以使uid,cn,email或者其他的方式。

  • ldap_scope: 用戶搜索范圍, 1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE. Default is 3.

  • db_password: mysql數(shù)據(jù)庫root用戶密碼 db_auth.

  • self_registration: (on or off. Default is on) 啟用和關(guān)閉用戶注冊功能.當(dāng)被關(guān)閉,新用戶職能通過admin用戶去創(chuàng)建。 _注意: 當(dāng) auth_mode 被設(shè)置為 ldap_auth, self-registration 會被一直關(guān)閉,該參數(shù)也會被忽略。

  • use_compressed_js: (on or off. 默認(rèn)為 on) 生產(chǎn)中使用,建議將該參數(shù)設(shè)置為 on. 在部署模式中將參數(shù)設(shè)置為off 以至于js 文件能夠被分開去修改.

  • max_job_workers: (默認(rèn)為 3) 設(shè)置在任務(wù)服務(wù)中最大的工作副本, 每一個image副本任務(wù),會有一個worker從倉庫中將所有的tag同步到遠(yuǎn)端。增大這個值回允許更多當(dāng)前的副本任務(wù),然而因為每個worker都會去消耗一定的網(wǎng)絡(luò)/cpu/io等資源,必須根據(jù)系統(tǒng)的資源進行合理設(shè)置該值。

  • secret_key: 該值為加解密在副本策略中遠(yuǎn)端倉庫的密碼,長度為16位字符。生產(chǎn)中必需修改該值. NOTE: After changing this key, previously encrypted password of a policy can not be decrypted.

  • token_expiration: token過期時間,默認(rèn)30分鐘

  • verify_remote_cert: (on or off. 默認(rèn) on) 該參數(shù)決定了當(dāng)harbor盒遠(yuǎn)端的registry實例交互的時候是否使用SSL/TLS .設(shè)置為off 的時候,一般遠(yuǎn)端的registry會采用自簽名或者未受信任的證書。

  • customize_crt: (on or off. 默認(rèn)為on) 當(dāng)設(shè)置為on的時候,會使用腳本去創(chuàng)建私鑰和root證書去認(rèn)證registry的token

  • 以下參數(shù):crt_country, crt_state, crt_location, crt_organization, crt_organizationalunit, crt_commonname, crt_email 被用來省城key。設(shè)置為off的時候,key和root證書可以被應(yīng)用在外部的源中。為Harbor token服務(wù)自定義證書

3. 配置后端存儲 (可選的)

默認(rèn),Harbor會存儲鏡像文件到本地文件系統(tǒng)。在生產(chǎn)環(huán)境中應(yīng)該考慮使用一些后端存儲去代替本地文件系統(tǒng),比如S3,openstack swift或者ceph等??梢栽谖募?code>templates/registry/config.yml去選擇更新存儲方式。比如你想使用Openstack Swift作為你的存儲后端,對應(yīng)的配置會如下:

storage:
  swift:
    username: admin
    password: ADMIN_PASS
    authurl: http://keystone_addr:35357/v3/auth
    tenant: admin
    domain: default
    region: regionOne
    container: docker_images

注意: 關(guān)于docker registry在存儲后端的詳細(xì)信息可以查看相應(yīng)鏈接 Registry 配置詳情 .

4.完成Harbor的安裝并進行啟動Harbor

一旦 harbord.cfg 和存儲后端被配置完成就可以使用install.sh腳本進行安裝和啟動Harbor服務(wù)。 需要注意的是,執(zhí)行該操作可能會花費一些,因為需要從docker hub上去下載一些Harbor相關(guān)依賴的images文件。

    $ sudo ./install.sh

如果上面腳本執(zhí)行完成之后,一切工作正常,你就可以在瀏覽器上輸入配置文件harbor.cfg中配置的hostname并且使用配置的admin用戶來訪問Harbor服務(wù)。 http://reg.yourdomain.com 默認(rèn)的管理員用戶名密碼: username/password:admin/Harbor12345 .

使用admin用戶登錄進去后首先創(chuàng)建一個項目,比如myproject. 接下來用戶就可以使用docker login reg.yourdomain.com 登錄并進行push鏡像。(默認(rèn)的registry服務(wù)監(jiān)聽的80端口):

sh
$ docker login reg.yourdomain.com
$ docker push reg.yourdomain.com/myproject/myrepo:mytag

重要提示: 默認(rèn)安裝的Harbor使用的是 HTTP 協(xié)議,因此,當(dāng)用戶在使用的時候,需要在docker daemon的配置文件中增加以下參數(shù) --insecure-registry reg.yourdomain.com 并且重啟docker.

更多使用Harbor的詳情信息,請點我**Harbor使用指南** .

5.配置Harbor以支持HTTPs訪問

Harbor不會使用任何認(rèn)證進行運行,默認(rèn)使用http來提供服務(wù)。這種方式對于部署或者測試環(huán)境會相應(yīng)的簡單一些,但是在生產(chǎn)環(huán)境中不建議那樣做。為了啟用HTTPS的支持,請看下面的鏈接 配置Harbor以支持https.

管理 Harbor的生命周期

你可以使用docker-compose去管理Harbor的整個生命周期。以下是相應(yīng)的管理命令,需要注意的是docker-compose必須得在有docker-compose.yml文件的目錄下執(zhí)行:

停止Harbor服務(wù):

$ sudo docker-compose stop
Stopping harbor_proxy_1 ... done
Stopping harbor_ui_1 ... done
Stopping harbor_registry_1 ... done
Stopping harbor_mysql_1 ... done
Stopping harbor_log_1 ... done
Stopping harbor_jobservice_1 ... done

啟動Harbor服務(wù):

$ sudo docker-compose start
Starting harbor_log_1
Starting harbor_mysql_1
Starting harbor_registry_1
Starting harbor_ui_1
Starting harbor_proxy_1
Starting harbor_jobservice_1

如果需要修改Harbor的配置,首先需要停掉正在運行的 Harbor實例,更新harbor.cfg文件,再次運行install.sh

$ sudo docker-compose down

$ vim harbor.cfg

$ sudo install.sh

刪除Harbor容器,保存鏡像文件和Harbor的數(shù)據(jù)庫文件:

$ sudo docker-compose rm
Going to remove harbor_proxy_1, harbor_ui_1, harbor_registry_1, harbor_mysql_1, harbor_log_1, harbor_jobservice_1
Are you sure? [yN] y
Removing harbor_proxy_1 ... done
Removing harbor_ui_1 ... done
Removing harbor_registry_1 ... done
Removing harbor_mysql_1 ... done
Removing harbor_log_1 ... done
Removing harbor_jobservice_1 ... done

刪除Harbor的數(shù)據(jù)庫信息和鏡像文件(一般為了純凈安裝):

$ rm -r /data/database
$ rm -r /data/registry

更多docker-compose命令使用指南

持久化數(shù)據(jù)和日志文件

默認(rèn)情況下,regirstry的數(shù)據(jù)被持久化到目標(biāo)主機的/data/目錄。當(dāng)Harbor的容器唄刪除或者重新創(chuàng)建的時候,數(shù)據(jù)不會有任何改變。 另外,Harbor使用rsyslog去收集每個容器的日志,默認(rèn)的,政協(xié)日志文件被存儲在目標(biāo)主機的/var/log/harbor/目錄以便進行troubleshooting

配置Harbor監(jiān)聽自定義端口

默認(rèn)情況下,Harbor監(jiān)聽80和443(需要配置)來作為admin用戶登錄的入口,當(dāng)然也可以自定義該端口。

Http協(xié)議

1.修改 docker-compose.yml 文件 替換ui中的端口映射, e.g. 8888:80.

proxy:
    image: library/nginx:1.11.5
    restart: always
    volumes:
      - ./config/nginx:/etc/nginx
    ports:
      - 8888:80
      - 443:443
    depends_on:
      - mysql
      - registry
      - ui
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

2.修改模版文件 templates/registry/config.yml
, 在參數(shù) "$ui_url"之后增加自定義端口":8888".

auth:
  token:
    issuer: registry-token-issuer
    realm: $ui_url:8888/service/token
    rootcertbundle: /etc/registry/root.crt
    service: token-service

3.運行install.sh更新并啟動harbor.

$ sudo docker-compose down
$ sudo install.sh

HTTPS 協(xié)議

1.啟用Https協(xié)議指南 guide.
2.修改 docker-compose.yml配置文件

修改compose文件中的443端口映射,比如: 4443:443.

proxy:
    image: library/nginx:1.11.5
    restart: always
    volumes:
      - ./config/nginx:/etc/nginx
    ports:
      - 80:80
      - 4443:443
    depends_on:
      - mysql
      - registry
      - ui
      - log
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

3.修改模版文件 templates/registry/config.yml
在"$ui_url"之后增加自定義端口,比如":4443"

auth:
  token:
    issuer: registry-token-issuer
    realm: $ui_url:4443/service/token
    rootcertbundle: /etc/registry/root.crt
    service: token-service

4.運行 install.sh 更新啟動 Harbor.

$ sudo docker-compose down
$ sudo install.sh

故障排查

  1. 當(dāng)harbor不正常工作的時候,可以使用一下命令查看正在運行的容器信息:

    $ sudo docker-compose ps
       Name                      Command               State                  Ports                   
  -----------------------------------------------------------------------------------------------------
  harbor_jobservice_1   /harbor/harbor_jobservice        Up                                               
  harbor_log_1          /bin/sh -c crond && rsyslo ...   Up    0.0.0.0:1514->514/tcp                    
  harbor_mysql_1        /entrypoint.sh mysqld            Up    3306/tcp                                 
  harbor_proxy_1        nginx -g daemon off;             Up    0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp 
  harbor_registry_1     /entrypoint.sh serve /etc/ ...   Up    5000/tcp                                 
  harbor_ui_1           /harbor/harbor_ui                Up

如果有容器處于非up狀態(tài),可以檢查容器日志/var/log/harbor

2.對harbor進行彈性負(fù)載均衡nginx反響代理的時候可以查看以下文件,
make/config/nginx/nginx.conf 中的相關(guān)配置 location /, location /v2/ location /service/.

proxy_set_header X-Forwarded-Proto $scheme;

感謝各位的閱讀,以上就是“Harbo如何使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Harbo如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI