51国产偷自视频在线视频播放_中国毛片视频天天色成人_99成人故事视频在线_狠狠cao熟女少妇_一级女性全黄久久片免费_国产精品天天在线观看麻豆_国产尤物白浆精品_日韩精品欧美亚洲_亚洲乱码一区二区三区在线欧美_日韩经典毛片观看

如何快速利用Harbor搭建自己的企業(yè)級registry server?

深圳睿云智合科技有限公司 > 睿云新聞  > 如何快速利用Harbor搭建自己的企業(yè)級registry server?

如何快速利用Harbor搭建自己的企業(yè)級registry server?

小貼士

 

Harbor是由VMware團隊為企業(yè)用戶設(shè)計的Registry?Server開源項目,用戶可以利用Harbor搭建自己的私有鏡像倉庫。在我們睿云智合(Wise2C)企業(yè)級容器云解決方案中默認使用Harbor做為私有鏡像倉庫,目前已在國內(nèi)多家金融行業(yè)企業(yè)生產(chǎn)環(huán)境使用。即使你是harbor小白,也可以從本文快速從認識Harbor到利用Harbor搭建自己的企業(yè)級registry server。

 

Harbor特性

 

? 基于角色控制

 

用戶和倉庫都是基于項目進行組織的, 而用戶基于項目可以擁有不同的權(quán)限。

? 基于鏡像的復(fù)制策略

 

鏡像可以在多個Harbor實例之間進行復(fù)制。

? 支持LDAP

 

Harbor的用戶授權(quán)可以使用已經(jīng)存在LDAP用戶。

? 鏡像刪除?& 垃圾回收

 

Image可以被刪除并且回收Image占用的空間。

? 用戶UI

 

用戶可以輕松的瀏覽、搜索鏡像倉庫以及對項目進行管理。

? 鏡像刪除?& 垃圾回收

 

絕大部分的用戶操作API, 方便用戶對系統(tǒng)進行擴展。

? 輕松的部署功能

 

Harbor提供了online、offline安裝,除此之外還提供了virtual appliance安裝。

 

Harbordocker registry關(guān)系

 

Harbor實質(zhì)上是對docker registry做了封裝,擴展了自己的業(yè)務(wù)模塊.下面展示一下docker registry和Harbor的架構(gòu)圖用以說明。

docker registry和Harbor的架構(gòu)

 

 

 

Harbor認證過程

1、docker daemon從docker registry拉取鏡像。

 

2、如果docker registry需要進行授權(quán)時,registry將會返回401 Unauthorized響應(yīng),同時在響應(yīng)中包含了docker client如何進行認證的信息。

 

3、docker client根據(jù)registry返回的信息,向auth server發(fā)送請求獲取認證token。

 

4、auth server則根據(jù)自己的業(yè)務(wù)實現(xiàn)去驗證提交的用戶信息是否存符合業(yè)務(wù)要求。

 

5、用戶數(shù)據(jù)倉庫返回用戶的相關(guān)信息。

 

6、auth server將會根據(jù)查詢的用戶信息,生成token令牌,以及當(dāng)前用戶所具有的相關(guān)權(quán)限信息?。上述就是完整的授權(quán)過程.當(dāng)用戶完成上述過程以后便可以執(zhí)行相關(guān)的pull push操作。認證信息會每次都帶在請求頭中。

 

Harbor整體架構(gòu)

 

Harbor整體架構(gòu)

 

Harbor認證流程

Harbor認證流程

 

 

 

A、首先,請求被代理容器監(jiān)聽攔截,并跳轉(zhuǎn)到指定的認證服務(wù)器。

 

B、?如果認證服務(wù)器配置了權(quán)限認證,則會返回401。通知docker client在特定的請求中需要帶上一個合法的token。而認證的邏輯地址則指向架構(gòu)圖中的core services。

 

C、?當(dāng)docker client接受到錯誤code。client就會發(fā)送認證請求(帶有用戶名和密碼)到core services進行basic auth認證。

 

D、?當(dāng)C的請求發(fā)送給ngnix以后,ngnix會根據(jù)配置的認證地址將帶有用戶名和密碼的請求發(fā)送到core serivces。

 

E、?core services獲取用戶名和密碼以后對用戶信息進行認證(自己的數(shù)據(jù)庫或者介入LDAP都可以)。成功以后,返回認證成功的信息。

 

 

從上面的docker registry 和?Harbor的架構(gòu)圖、流程圖可以看出Harbor的擴展部分為core services。這部分實現(xiàn)了用戶的認證, 添加了UI模塊已經(jīng)webhook。

 

Harbor安裝

 

Harbor安裝有三種方式,這里以online的方式為例,另外兩種有興趣的童鞋可以參考Harbor的官方文檔。

 

Harbor的安裝

 

1、下載安裝包

2、配置harbor.cfg文件

3、執(zhí)行install.sh腳本安裝并啟動Harbor

 

用戶可以到release頁下載相關(guān)文件,解壓tar xvf harbor-online-installer-<version>.tgz。

 

?Harbor配置

 

  • hostname 運行Harbor的主機地址(域名或者IP地址

不能是localhost or 127.0.0.1。

  • ui_url_protocol url協(xié)議(http或者htpps)

https配置可以參考?Configuring Harbor with ? ? ?HTTPS Access。

  • Email設(shè)定

配置的郵件可以用戶Harbor進行密碼重置處理。

 

e.g:

email_server =smtp.mydomain.com

email_server_port = 25

email_username=ample_admin@mydomain.com

email_password = abc

email_from = admin sample_admin@mydomain.com

email_ssl = false

 

  • harbor_admin_password

admin初始化密碼。

  • auth_mode

認證方式,默認為db_auth。也可以使用ldap_auth 由于參數(shù)太多就不一一列舉了

  • Harbor安裝手冊講的很清楚。

 

Storage配置

 

默認情況下,Harbor是把鏡像存儲在本地文件系統(tǒng)中的。但是在生成環(huán)境中你可能會考慮到使用其他的存儲方案來代替本地存儲。比如S3、Openstack Swift、Ceph等等。那么這個時候你就需要更改templates/registry/config.yml中的存儲配置部分。例如:

 

storage:

swift:

username: admin

password: ADMIN_PASS

authurl: http://keystone_addr:35357/v3/auth

tenant: admin

domain: default

region: regionOne

container: docker_images

 

詳細配置可以參考Registry Configuration Reference

 

完成安裝并啟動

 

sudo ./install.sh

 

登錄并創(chuàng)建自己的首個倉庫試試(初始用戶名/密碼?admin/Harbor12345)

 

$docker login reg.yourdomain.com

$dockerpushreg.yourdomain.com/myproject/myrepo:mytag

 

Harbor的生命周期管理?你可以使用docker-compose來管理Harbor的生命周期,下面列舉一些有用的常用的命令。

 

Stop 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

 

Restart Harbor after stopping:

 

$ 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

 

移除docker container 但是保留相關(guān)鏡像文件

 

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

 

詳細信息可以參考Docker Compose command-line reference

 

  • 持久化data和日志文件默認情況下data是被存儲在Harbor host機的/data目錄.不管harbor container是刪除還是重新創(chuàng)建這里的數(shù)據(jù)都是一致存在的。另外harbor的日志文件默認情況下是存在/var/log/harbor/目錄下的。
  • 自定義ngnix監(jiān)聽端口修改docker-compose.yml文件。

 

 

1、替換80端口為任意存在未被占用的端口?e.g 8899

proxy:

image: library/nginx:1.11.5

restart: always

volumes:

– ./config/nginx:/etc/nginx

ports:

– 8899: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文件

auth:

token:

issuer: registry-token-issuer

realm: $ui_url:8899/service/token

rootcertbundle: /etc/registry/root.crt

service: token-service

3、運行install.sh來更新并啟動Harbor

$ sudo docker-compose down

$ sudo install.sh

 

HTTPS 協(xié)議的修改和自定義監(jiān)聽端口修改一樣的操作

 

有興趣的童鞋如果想深入研究的話還可以參考下面的鏈接

 

  • Harbor API Specs by Swagger

 

  • Internationalization Guide

 

  • Python SDK

 

  • Harbor CLI

 

  • Configuring Harbor as a local registry mirror
No Comments

Post a Comment

Comment
Name
Email
Website