Harbor

Habor#

Tips#

  • goharbor/harbor-helm - trusted cloud native repository for Kubernetes
  • 属于 CI 和 CD 之间,Nexus 偏向开发,Harbor 偏向生产部署交付
  • 特性
    • trivy 安全分析
    • 账号管理、多租户、RBAC
    • 镜像副本、Harbor 之间副本复制
    • WebUI
  • 配置
    • 默认会部署 ingress
    • 要指定 externalURL 确保生成地址正确
    • 默认关闭内部 TLS - internalTLS
    • 存储
      • registry - 5Gi
      • chartmuseum - 5Gi
      • jobservice - 1Gi
      • database - 1Gi - 可用外部
        • 如果使用内部数据库记得修改账号密码
      • redis - 1Gi - 可用外部
      • trivy - 2Gi
      • imageChartStorage
        • 支持 azure,gcs,s3,swift,oss
  • 端口
    • 443
    • 80
    • 4443
      • Notary - Docker Content Trust
  • 文档
ResourceMinimumRecommended
CPU2 CPU4 CPU
Mem4 GB8 GB
Disk40 GB160 GB
helm repo add harbor https://helm.goharbor.io

安装#

  • docker 安装过程会使用 goharbor/prepare 进行构建需要的 docker compose

配置#

组件#

  • postgresql
  • redis
  • clari
  • beego
  • chartmuseum
  • docker/distribution
  • docker/notary
  • helm
  • swagger-ui

Helm#

harborAdminPassword: "Harbor12345"
# 部署组件
# =========
# 不使用 Ingress 则会部署 nginx
nginx:
portal:
core:
jobservice:
registry:
chartmuseum:
clair:
trivy:
notary:
database:
# 设置为 external 使用外部数据库
type: internal
# 配置外部数据库
external:
host: "192.168.0.1"
port: "5432"
username: "user"
password: "password"
# coreDatabase: "registry"
# clairDatabase: "clair"
# notaryServerDatabase: "notary_server"
# notarySignerDatabase: "notary_signer"
redis:
type: internal