站長資訊網
        最全最豐富的資訊網站

        鏡像倉庫Harbor解析

        一、Harbor特性介紹

        1. 基于角色訪問控制

        每個人角色不同,需求也不同,因此就需要訪問權限控制,根據角色分配相應的權限。例如,開發人員需要對項目構建這就需要用到讀寫權限(push/pull),測試人員只需要讀權限(pull),運維一般管理鏡像倉庫,具備權限分配能力,項目經歷具有所有權限。

        在 Harbor 中,有三種角色:

        (1)Guest:對指定項目有只讀權限。

        (2)Developer:開發,讀寫項目的權限。

        (3)Admin:管理者,所有權限。

        Anonymous:當用戶未登錄時,該用戶被設為匿名用戶。匿名用戶不能訪問私有項目,只能訪問公開項目。

        2. 鏡像復制

        可以將倉庫中的鏡像同步到遠程的 Harbor。

        3. LDAP

        Harbor 支持 LDAP 認證,可以很輕易接入已有的 LDAP。

        4. 鏡像刪除和空間回收

        Harbor 支持在 Web 刪除鏡像,回收無用的鏡像,釋放磁盤空間。

        5. 圖形頁面管理

        用戶很方面搜索鏡像及項目管理

        6. 審計

        對倉庫的所有操作都有記錄

        7. RESET API

        完整的API,方便與外部集成。

        二、Harbor高可用方案介紹

        1. 共享存儲

        多個實例共享數據,共享一個存儲。任何一個實例持久化存儲的鏡像,其它實例都可以讀取到,通過前置負載均衡分發請求。

        2. 復制同步

        利用其鏡像復制功能,實現雙向復制保持數據一致,通過前置負載均衡分發請求。

        三、Harbor組件

        MODULE FUNCTION

        harbor-adminserver 配置管理中心

        harbor-db MySQL 數據庫

        harbor-jobservice 負責鏡像復制

        harbor-log 記錄操作日志

        harbor-ui Web 管理頁面和 API

        nginx 前端代理,負責前端頁面和鏡像上傳/下載轉發

        redis 會話

        registry 鏡像存儲

        四、Harbor部署

        Harbor有三種安裝方式

        (1)在線安裝:從 Docker Hub 下載 Harbor 相關鏡像,因此安裝軟件包非常小。

        (2)離線安裝:安裝包包含部署的相關鏡像,因此安裝包較大。

        (3)OVA安裝程序:當用戶具有 vCenter 環境時,使用此安裝程序,在部署 OVA 后啟動 Harbor。

        這里采用離線安裝 https://github.com/goharbor/harbor/releases

        既然部署私有 registry,那么無疑是在自建的私網,達到便于管理,傳輸快速的目的。如果是異地的話,是不建議自建 registry的,因為這樣的話,反而更加慢。

        默認情況下,Docker 請求 registry 時是使用 https 協議的,但我們在私網搭建 registry 通常是 http 協議的。因此等下需要給 Docker 指明要采用 http 協議。

        Harbor 在部署和使用時需要借助 Docker 的單機編排工具 Docker compose

        # yum install -y docker-compose

        切到解壓目錄,簡單的修改一下配置文件,hostname 指明 harbor 地址,協議是 http,登錄密碼是 pwd@123。

        # tar -zxf harbor-offline-installer-v1.5.1.tgz

        # cd harbor/

        # vim harbor.cfg

        hostname = 192.168.5.155

        ui_url_protocol = http

        harbor_admin_password = pwd@123

        準備配置文件

        # ./prepare

        安裝并啟動 harbor

        # ./install.sh

        查看運行狀態,部署完成

        # docker-compose ps

        Name Command State Ports

        ————————————————————————————————–

        harbor-adminserver /harbor/start.sh Up

        harbor-db /usr/local/bin/docker-entr … Up 3306/tcp

        harbor-jobservice /harbor/start.sh Up

        harbor-log /bin/sh -c /usr/local/bin/ … Up 127.0.0.1:1514->10514/tcp

        harbor-ui /harbor/start.sh Up

        nginx nginx -g daemon off; Up 0.0.0.0:443->443/tcp,

        0.0.0.0:4443->4443/tcp,

        0.0.0.0:80->80/tcp

        redis docker-entrypoint.sh redis … Up 6379/tcp

        registry /entrypoint.sh serve /etc/ … Up 5000/tcp

        如果有非 Up 狀態,就去看日志

        # ls /var/log/harbor/

        adminserver.log jobservice.log mysql.log proxy.log redis.log registry.log ui.log

        五、Harbor管理

        訪問 Harbor 地址 http://192.168.5.155 登錄到 Web 頁面

        libariy 項目是默認自帶的,通常用這個存儲一些公共的鏡像,默認情況下,這個項目下的鏡像誰都可以 pull,但不能 push,push需要先登錄。

        接下來,新建一個 hello_harbor 項目,給用戶 qkc 賦予 push 權限

        我這里搭建的 Harbor 是以 http 提供服務的,而 Docker Client 默認是以 https 訪問倉庫,所以要先配置可信任,否則對鏡像倉庫的請求會非常蛋疼。

        # cat /etc/docker/daemon.json

        {

        "registry-mirrors": ["http://bc437cce.m.daocloud.io"],

        "insecure-registries": ["192.168.5.155"]

        }

        # systemctl restart docker

        注意 REPOSITORY 的這一列,如果鏡像只放在本地存儲的話,REPOSITORY 寫什么都可以,但推送到鏡像倉庫就必須指定倉庫中心地址。所以先重命名 REPOSITORY 為鏡像倉庫服務器地址。

        $ docker images

        REPOSITORY TAG IMAGE ID CREATED SIZE

        tomcat8 v2 9ce8e9caec7b 6 hours ago 249MB

        tomcat8 latest 89365c870fc9 6 hours ago 244MB

        nginx v1 7788133766ea 7 hours ago 323MB

        nginx1.14 latest bcd632d57f44 7 hours ago 323MB

        centos latest 5182e96772bf 7 weeks ago 200MB

        在 Docker 主機上傳鏡像到 Harbor

        $ docker tag tomcat8:v2 192.168.5.155/hello_harbor/tomcat8:v2

        $ docker push 192.168.5.155/hello_harbor/tomcat8:v2

        在 Harbor 上查看鏡像

        下載鏡像

        $ docker pull 192.168.5.155/hello_harbor/tomcat8:v2

        $ docker images

        REPOSITORY TAG IMAGE ID CREATED SIZE

        192.168.5.155/hello_harbor/tomcat8 v2 9ce8e9caec7b 6 hours ago 249MB

        定期垃圾收集,釋放磁盤空間

        存儲庫刪除分為兩步:

        1. 第一步在 UI 中刪除:在 Harbor UI 中 刪除,這是標記刪除,但是存儲庫的文件仍然保留在 Harbor 存儲中。

        2. 第二步執行垃圾收集(GC):在執行 GC 之間,確保沒人在推送鏡像或沒人訪問 Harbor。如果有人推送鏡像可能會錯誤的刪除鏡像,從而導致鏡像損壞。因此在運行 GC 之前,建議停止 Harbor。注意,啟動的時候需要到 Harbor 的解壓目錄下進行。

        啟動一個 GC 容器,并共享 registry 的數據卷,執行程序對該數據卷掃描清理

        # docker-compose stop

        # docker run -it –name gc –rm –volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml

        # docker-compose start

        用戶配置及管理手冊: https://github.com/goharbor/harbor/blob/master/docs/user_guide.md

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产精品日本一区二区在线播放| 亚洲∧v久久久无码精品 | 日韩精品欧美激情国产一区| 99精品国产在热久久| 亚洲一区二区三区国产精品| 国产精品免费观看视频| 国产亚洲综合成人91精品| 日韩精品无码一区二区中文字幕 | 国产精品视频久久| 亚洲国产精品VA在线观看麻豆| 国产亚洲精品精品国产亚洲综合| 国产成人精品日本亚洲网站| 亚洲国产精品第一区二区三区| 成人国产精品动漫欧美一区| 精品在线免费观看| 国产成人精品免费视| 精品人妻中文字幕有码在线| 亚洲精品无码99在线观看| 久久97久久97精品免视看秋霞| 成人国内精品久久久久影院VR| 国产精品自产拍在线观看| 久久精品国产亚洲AV无码麻豆 | 国产99re在线观看只有精品| 精品无码久久久久久尤物| 亚洲国产精品无码专区影院| 四虎国产精品永免费| 九九久久精品国产| 国产精品一区三区| 最新国产精品拍自在线观看| 久久精品99久久香蕉国产色戒| 亚洲国产精品丝袜在线观看| 欧美日韩精品系列一区二区三区国产一区二区精品 | 久久久久99精品成人片直播| 亚洲午夜国产精品无码老牛影视| 欧美精品高清在线xxxx| 无码AV动漫精品一区二区免费 | 色偷偷888欧美精品久久久| 精品午夜久久福利大片| 国产精品亚洲片在线va| 九九热在线视频观看这里只有精品| 久久99国产精品一区二区|