Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20220323_Harbor 技術雜談

20220323_Harbor 技術雜談

Phil Huang

March 23, 2022
Tweet

More Decks by Phil Huang

Other Decks in Technology

Transcript

  1. #pichuang # whois Phil Huang 黃秉鈞 • 一週七睡,一週三練;上班專業,下班躺平 • Cloud

    Native Taiwan User Group (CNTUG) 打雜工 • blog.pichuang.com.tw Ref: https://www.linkedin.com/in/phil-huang-09b09895/ 3
  2. #pichuang Harbor • 為 Cloud Native Computing Foundation (CNCF) 畢業專案之一

    • 主要由 VMware 貢獻和維護的私有容器倉庫 (Container Registry) 開源 專案 • 主要常見於地端 Container / Kubernetes / 微服務等案子會隨行出現的 服務 • 現在最新版本為 v2.4.0 ◦ Roadmap • 近況 ◦ SIG 宣布 Harbor SIG Docs 計畫 • GitHub:goharbor/harbor
  3. #pichuang 關於安裝 Harbor 你是如何安裝 Harbor 的? • 2 個約束條件 ◦

    VM or Kubernetes? ◦ Self Support or Vendor Specific Support?
  4. #pichuang 關於憑證 SSL/TLS 萬惡的 x509: certificate signed by unknown authority

    • 預設狀況下,會提供自動 產生的 Certificate / Private Key • 理想狀況下,建議自簽 TLS Certificate / Private Key ◦ EasyRSA (推薦) ◦ OpenSSL https://github.com/goharbor/harbor/blob/v2.4.1/make/harbor.yml.tmpl#L13-L18
  5. #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.tmpl https://docs.docker.com/registry/configuration/#storage https://docs.docker.com/registry/storage-drivers/
  6. #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/ Project Repository Nested Repositories
  7. #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
  8. #pichuang 關於 Scanners • 預設狀況下,是採用 Aqua Trivy 當作預設 CVEs 掃描來

    源 • 會有 CVEs 來源需要定期匯入新的 Database 議題,每個 Scanners 做法不一樣 a. 白名單開 Firewall 或走 HTTPs/ Proxy (推薦) b. 手動一個一個搬 DB • Scanner Adapters 支援清單上並沒有列全部的 Scanner 選擇,若有特定廠牌,需洽詢各自 Provdiders https://goharbor.io/docs/2.4.0/install-config/harbor-compatibility-list/#scanner-adapters
  9. #pichuang 關於離線環境處理 • 主要分 2 種 ◦ 預先建置 docker-registry or

    harbor ◦ 手動壓縮 tarball (.tar.gz) • Tarball 建立常見做法 ◦ docker save / podman save ◦ skopeo copy
  10. #pichuang 關於 Replications • 支援同步市面上絕大部分的 Container Registry • 架構上可透過 Replications

    Rules 設計出 ◦ 單向同步 ◦ 邏輯上的雙向同步 (兩邊都設定單向) • Replications Rules 蠻多參數可以調的,建議 參考官方文件 Creating a Replication Rule 一 文 => 這是精髓啊~只是受限現實因素用不太起來
  11. #pichuang COSCUP x KCD Taiwan 2022 • CFP: 2022/4/11 ~

    2022/5/15 • 議程公告: 2022/7/1 • COSCUP 議程: 2022/7/30 ~2022/7/31