Skip to main content

Habor

  • goharbor/harbor
    • Kubernetes 上的容器镜像仓库
  • 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
  • 文档
tip
  • 域名映射 Project #13579
  • 镜像 docker 无法自动添加 library #12719
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

FAQ

子域名

flag provided but not defined: -format

Trust not fully operational