您好,登錄后才能下訂單哦!
這篇文章主要講解了“Harbo如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Harbo如何使用”吧!
基本架構
Harbor 可以使用以下三種方式進行安裝部署:
在線安裝: 使用者可以直接從docker hub上下載harbor的官方鏡像。
離線安裝: 使用者需要下載源碼包,并進行自己構建images。源碼包比較大
Virtual Appliance: 一般使用這種方式在第三方平臺搭建一個私有倉庫作為平臺的組建比如vsphere等,需要下載OVA 版本的Harbor.
官方下載頁面 請點擊我 .
需要安裝Harbor's virtual appliance,請點擊我.
本篇指導主要講解通過使用在線和離線方式去一步步安裝和配置Harbor.安裝的步驟基本上都是相同的。
如果用戶運行了老版本的harbor,可能需要遷移數據到新的數據庫隊列中,詳細的步驟請**點擊我**
另外在kubernetes上面部署的步驟和看以下鏈接**harbor on kubernets **
Harbor 被作為一個docker容器部署在服務區上,因此,他能夠被部署在任何linux發行版本。目標主機上需要安裝python,docker,以及docker-compose工具。
Python 需要 2.7+. 需要注意的是,最好安裝對應linux發型版本的python。
Docker engine 需要1.10+ 目前比較新的版本1.12. docker安裝
Docker Compose 需要 1.6.0+. Compose安裝
安裝步驟為以下幾個部分:
下載安裝包
修改相關配置 harbor.cfg;
運行 install.sh 去安裝和啟動harbor;
點擊鏈接下載二進制包 Harbor下載 . 選擇一個在線或者離線包進行下載. 使用 tar 命令解壓下載的源碼包
在線包安裝:
$ tar xvf harbor-online-installer-<version>.tgz
離線包安裝:
$ tar xvf harbor-offline-installer-<version>.tgz
配置參數被放在文件 harbor.cfg 中. 詳細參數講解 至少得配置 hostname 參數
hostname: 配置目標主機的主機名, 被用來訪問Harbor ui 和鏡像倉庫的,可以配置為ip地址和全域名,比如 192.168.1.10
or reg.yourdomain.com
. 不要使用 localhost
or 127.0.0.1
為主機名
ui_url_protocol: (http or https. 默認協議為 http) 該協議被用來訪問 the UI and the token/notification 服務. 默認是 http. 想要設置https協議,請看鏈接 配置Harbor支持https協議.
Email settings: 配置Harbor來發送郵件,當然改配置并不是必須的 .注意:默認的ssl鏈接沒有被啟用,如果SMTP需要ssl支持,可以設置以下參數以支持。
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: 設置管理員內部密碼,該密碼緊緊在第一次啟動Harbor的時候生效.在之后這個設置被忽略,管理員的密碼將在UI中重新設置。 默認的用戶名和密碼如下: admin/Harbor12345 .
auth_mode: 被用來認證的方式,默認使用的是 db_auth,該認證會被肢解存儲到數據庫中。 如果需要設置LDAP方式認證需要使用ldap_auth.
ldap_url: LDAP認證方式的URL (e.g. ldaps://ldap.mydomain.com
). 當 auth_mode 被設置為ldap_auth 的時候。
ldap_searchdn: 鏈接LDAP/AD服務的用戶域(e.g. uid=admin,ou=people,dc=mydomain,dc=com
).
ldap_search_pwd: 為上面設定的用戶域設置密碼 ldap_searchdn.
ldap_basedn: 基礎域為方便尋找一個用戶e.g. ou=people,dc=mydomain,dc=com
. 僅當 auth_mode is 設置為ldap_auth的時候才使用
ldap_filter:用戶搜索過濾 (objectClass=person)
.
ldap_uid: 該參數被用來匹配一個LDAP搜索的用戶,可以使uid,cn,email或者其他的方式。
ldap_scope: 用戶搜索范圍, 1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE. Default is 3.
db_password: mysql數據庫root用戶密碼 db_auth.
self_registration: (on or off. Default is on) 啟用和關閉用戶注冊功能.當被關閉,新用戶職能通過admin用戶去創建。 _注意: 當 auth_mode 被設置為 ldap_auth, self-registration 會被一直關閉,該參數也會被忽略。
use_compressed_js: (on or off. 默認為 on) 生產中使用,建議將該參數設置為 on. 在部署模式中將參數設置為off 以至于js 文件能夠被分開去修改.
max_job_workers: (默認為 3) 設置在任務服務中最大的工作副本, 每一個image副本任務,會有一個worker從倉庫中將所有的tag同步到遠端。增大這個值回允許更多當前的副本任務,然而因為每個worker都會去消耗一定的網絡/cpu/io等資源,必須根據系統的資源進行合理設置該值。
secret_key: 該值為加解密在副本策略中遠端倉庫的密碼,長度為16位字符。生產中必需修改該值. NOTE: After changing this key, previously encrypted password of a policy can not be decrypted.
token_expiration: token過期時間,默認30分鐘
verify_remote_cert: (on or off. 默認 on) 該參數決定了當harbor盒遠端的registry實例交互的時候是否使用SSL/TLS .設置為off 的時候,一般遠端的registry會采用自簽名或者未受信任的證書。
customize_crt: (on or off. 默認為on) 當設置為on的時候,會使用腳本去創建私鑰和root證書去認證registry的token
以下參數:crt_country, crt_state, crt_location, crt_organization, crt_organizationalunit, crt_commonname, crt_email 被用來省城key。設置為off的時候,key和root證書可以被應用在外部的源中。為Harbor token服務自定義證書
默認,Harbor會存儲鏡像文件到本地文件系統。在生產環境中應該考慮使用一些后端存儲去代替本地文件系統,比如S3,openstack swift或者ceph等。可以在文件templates/registry/config.yml
去選擇更新存儲方式。比如你想使用Openstack Swift作為你的存儲后端,對應的配置會如下:
storage: swift: username: admin password: ADMIN_PASS authurl: http://keystone_addr:35357/v3/auth tenant: admin domain: default region: regionOne container: docker_images
注意: 關于docker registry在存儲后端的詳細信息可以查看相應鏈接 Registry 配置詳情 .
一旦 harbord.cfg 和存儲后端被配置完成就可以使用install.sh
腳本進行安裝和啟動Harbor服務。 需要注意的是,執行該操作可能會花費一些,因為需要從docker hub上去下載一些Harbor相關依賴的images文件。
$ sudo ./install.sh
如果上面腳本執行完成之后,一切工作正常,你就可以在瀏覽器上輸入配置文件harbor.cfg中配置的hostname并且使用配置的admin用戶來訪問Harbor服務。 http://reg.yourdomain.com 默認的管理員用戶名密碼: username/password:admin/Harbor12345 .
使用admin用戶登錄進去后首先創建一個項目,比如myproject
. 接下來用戶就可以使用docker login reg.yourdomain.com
登錄并進行push鏡像。(默認的registry服務監聽的80端口):
sh $ docker login reg.yourdomain.com $ docker push reg.yourdomain.com/myproject/myrepo:mytag
重要提示: 默認安裝的Harbor使用的是 HTTP 協議,因此,當用戶在使用的時候,需要在docker daemon的配置文件中增加以下參數 --insecure-registry reg.yourdomain.com
并且重啟docker.
更多使用Harbor的詳情信息,請點我**Harbor使用指南** .
Harbor不會使用任何認證進行運行,默認使用http來提供服務。這種方式對于部署或者測試環境會相應的簡單一些,但是在生產環境中不建議那樣做。為了啟用HTTPS的支持,請看下面的鏈接 配置Harbor以支持https.
你可以使用docker-compose去管理Harbor的整個生命周期。以下是相應的管理命令,需要注意的是docker-compose必須得在有docker-compose.yml文件的目錄下執行:
停止Harbor服務:
$ 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服務:
$ 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的數據庫文件:
$ 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的數據庫信息和鏡像文件(一般為了純凈安裝):
$ rm -r /data/database $ rm -r /data/registry
更多docker-compose命令使用指南
默認情況下,regirstry的數據被持久化到目標主機的/data/
目錄。當Harbor的容器唄刪除或者重新創建的時候,數據不會有任何改變。 另外,Harbor使用rsyslog去收集每個容器的日志,默認的,政協日志文件被存儲在目標主機的/var/log/harbor/
目錄以便進行troubleshooting
默認情況下,Harbor監聽80和443(需要配置)來作為admin用戶登錄的入口,當然也可以自定義該端口。
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
, 在參數 "$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
1.啟用Https協議指南 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
當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狀態,可以檢查容器日志/var/log/harbor
2.對harbor進行彈性負載均衡nginx反響代理的時候可以查看以下文件,
make/config/nginx/nginx.conf
中的相關配置 location /
, location /v2/
location /service/
.
proxy_set_header X-Forwarded-Proto $scheme;
感謝各位的閱讀,以上就是“Harbo如何使用”的內容了,經過本文的學習后,相信大家對Harbo如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。