https://docs.google.com/presentation/d/1Qk-ExTgxL918J5QKyr6t5ivzChC4oV1slwuQvwnHCag/edit?usp=sharing
Harbor 技術雜談Phil Huang 黃秉鈞 Will 保哥的技術交流中心, Webniar, Mar. 23, 2022
View Slide
WARNING● 本次分享不會講基本安裝等 101 等級議題● 建議當廣播節目收聽● 歡迎直接開麥交流
#pichuang# whois Phil Huang 黃秉鈞● 一週七睡,一週三練;上班專業,下班躺平● Cloud Native Taiwan User Group (CNTUG) 打雜工● blog.pichuang.com.twRef: https://www.linkedin.com/in/phil-huang-09b09895/3
#pichuang
#pichuangHarbor● 為 Cloud Native Computing Foundation (CNCF) 畢業專案之一● 主要由 VMware 貢獻和維護的私有容器倉庫 (Container Registry) 開源專案● 主要常見於地端 Container / Kubernetes / 微服務等案子會隨行出現的服務● 現在最新版本為 v2.4.0○ Roadmap● 近況○ SIG 宣布 Harbor SIG Docs 計畫● GitHub:goharbor/harbor
#pichuang開始之前...
#pichuang關於安裝 Harbor你是如何安裝 Harbor 的?● 2 個約束條件○ VM or Kubernetes?○ Self Support or Vendor Specific Support?
#pichuang關於憑證 SSL/TLS萬惡的 x509: certificate signed by unknown authority● 預設狀況下,會提供自動 產生的 Certificate / Private Key● 理想狀況下,建議自簽 TLS Certificate / Private Key○ EasyRSA (推薦)○ OpenSSLhttps://github.com/goharbor/harbor/blob/v2.4.1/make/harbor.yml.tmpl#L13-L18
#pichuang關於 Storage Backend● 儲存技術選擇邏輯跟設計 Docker Registry 一樣● 預設狀況下,是會使用 Local Storage○ 會吃 /data 的儲存空間○ 關於能不能跟要不要使用 NFS…● 理想狀況下,是採用 Object Storage 為主○ 主要使用 s3-compatible Storage,例如 AWS S3 / Azure Blob / GCP Cloud Stroage / MinIO 等https://github.com/goharbor/harbor/blob/v2.4.1/make/harbor.yml.tmplhttps://docs.docker.com/registry/configuration/#storagehttps://docs.docker.com/registry/storage-drivers/
#pichuangHigh Level Design for Harbor
#pichuanghttps://github.com/goharbor/harbor/wiki/Architecture-Overview-of-Harbor
#pichuang關於 Project 與 Repositories● Project 主要控制用戶授權、資源分配;Repositories 主要提供實際 Container Images 儲存的位置● Project : Repositories = 1 : N● Repository 可以使用做巢狀 Repos (Nested Repos)https://goharbor.io/docs/2.4.0/working-with-projects/working-with-images/repositories/ProjectRepositoryNested Repositories
#pichuang關於 Helm Chart● Helm v3.8.0 後開始支援 OCI 格式打包 Packages○ 現在是 helm v3.8.1● 推薦使用 helm v3.8 推送 OCI 格式的 helm chart 進入 Harbor v2.4.x 儲存Ref: https://goharbor.io/docs/2.4.0/working-with-projects/working-with-images/managing-helm-charts/https://helm.sh/docs/topics/registries/#enabling-oci-support
#pichuang關於 Scanners● 預設狀況下,是採用 Aqua Trivy 當作預設 CVEs 掃描來源● 會有 CVEs 來源需要定期匯入新的 Database 議題,每個Scanners 做法不一樣a. 白名單開 Firewall 或走 HTTPs/ Proxy (推薦)b. 手動一個一個搬 DB● Scanner Adapters 支援清單上並沒有列全部的 Scanner選擇,若有特定廠牌,需洽詢各自 Provdidershttps://goharbor.io/docs/2.4.0/install-config/harbor-compatibility-list/#scanner-adapters
#pichuang關於離線環境處理● 主要分 2 種○ 預先建置 docker-registry or harbor○ 手動壓縮 tarball (.tar.gz)● Tarball 建立常見做法○ docker save / podman save○ skopeo copy
#pichuang關於 Replications● 支援同步市面上絕大部分的 ContainerRegistry● 架構上可透過 Replications Rules 設計出○ 單向同步○ 邏輯上的雙向同步 (兩邊都設定單向)● Replications Rules 蠻多參數可以調的,建議參考官方文件 Creating a Replication Rule 一文=> 這是精髓啊~只是受限現實因素用不太起來
#pichuang典型架構:混合雲部署,複製方向決定長相Case 1 Case 2
#pichuang典型架構:Harbor Federated TopologyRef: https://tanzu.vmware.com/content/white-papers/vmware-tanzu-edge-solution-architecture-with-robo-topology● 主要為生成物分發,如 dockerhub● 依據位置,分 2 種角色:○ 唯一 Corporate Harbor○ 多個 Edge Harbor
#pichuangScreenShot: Harbor Edge Site ReplicationsRef: https://tanzu.vmware.com/content/white-papers/vmware-tanzu-edge-solution-architecture-with-robo-topology
#pichuang關於備份策略選擇
#pichuangReferences● 蠻常會有不錯內容的公眾號 亨利筆記● 管理員都應該要有一本的 Harbor 權威指南
#pichuangCOSCUP x KCD Taiwan 2022● CFP: 2022/4/11 ~ 2022/5/15● 議程公告: 2022/7/1● COSCUP 議程: 2022/7/30~2022/7/31