Harbor

마지막 업데이트: 2026년 2월 25일

개요

Harbor는 CNCF Graduated 프로젝트로, 오픈소스 컨테이너 레지스트리입니다. 보안, 정책, 역할 기반 접근 제어를 제공하며, 특히 에어갭(폐쇄망) 환경에서 Kubernetes 클러스터를 운영할 때 필수적인 솔루션입니다.

아키텍처

spinner

주요 컴포넌트

컴포넌트
역할
설명

Core

API 및 인증

사용자 인증, 프로젝트 관리, API 제공

Registry

이미지 저장

Docker Distribution (registry:2) 기반

Job Service

비동기 작업

복제, GC, 스캐닝 작업 처리

Portal

Web UI

관리 대시보드

Trivy

취약점 스캐닝

이미지 보안 스캔

Notary

이미지 서명

Content Trust (선택적)

PostgreSQL

메타데이터

프로젝트, 사용자, 정책 저장

Redis

캐시

세션, 작업 큐


Helm을 사용한 설치

사전 요구사항

Helm Chart 설치

프로덕션 values.yaml

설치 확인


프로젝트 및 RBAC

프로젝트 유형

유형
설명
사용 사례

Public

인증 없이 pull 가능

공개 이미지, 베이스 이미지

Private

인증 필요

내부 애플리케이션

프로젝트 생성

멤버 역할

역할
권한
설명

Project Admin

전체

프로젝트 설정, 멤버 관리

Maintainer

Push/Pull/Delete

이미지 관리

Developer

Push/Pull

이미지 업로드/다운로드

Guest

Pull

읽기 전용

Limited Guest

Pull (특정 태그)

제한된 읽기

멤버 추가

Robot Accounts

CI/CD 파이프라인용 서비스 계정:


이미지 복제

spinner

복제 모드

모드
방향
설명
사용 사례

Pull

외부 → Harbor

외부 이미지를 Harbor로 복제

미러링, 캐싱

Push

Harbor → 외부

Harbor 이미지를 외부로 복제

배포, DR

Pull Replication (미러링)

Docker Hub 이미지를 Harbor로 미러링:

Push Replication (DR/배포)

Harbor에서 다른 레지스트리로 복제:

스케줄된 복제


취약점 스캐닝

Trivy 통합

Harbor는 기본적으로 Trivy를 취약점 스캐너로 사용합니다.

스캐닝 설정:

수동 스캐닝

CVE Allowlist

알려진 취약점을 예외 처리:

스캔 정책 적용

특정 심각도 이상의 취약점이 있으면 pull 차단:


이미지 서명

Cosign 통합 (권장)

Sigstore Cosign을 사용한 이미지 서명:

Notation 통합

Harbor에서 서명 강제


에어갭 환경에서의 Harbor

오프라인 설치

1. 온라인 환경에서 이미지 다운로드:

2. 에어갭 환경으로 전송:

3. 에어갭 환경에서 설치:

Kubernetes용 에어갭 이미지 준비

에어갭 Harbor로 이미지 업로드

에어갭 클러스터 containerd 설정


Harbor + Kubernetes 통합

imagePullSecrets 설정

Proxy Cache

spinner

Harbor를 외부 레지스트리의 프록시 캐시로 사용:

Garbage Collection

사용되지 않는 blob 정리:

스케줄된 GC:

Tag Retention Policy

이미지 보존 정책:


모범 사례

1. 고가용성 구성

2. 보안 강화

3. 백업 전략

4. 모니터링


요약

항목
권장 사항

설치

Helm + 외부 DB/Redis (프로덕션)

접근 제어

RBAC + Robot Accounts (CI/CD)

스캐닝

Trivy 자동 스캔 활성화

서명

Cosign (권장)

복제

Pull (미러링) + Push (DR)

에어갭

Offline installer + 이미지 preload

HA

2+ replicas + 외부 DB/Redis + S3

백업

DB dump + S3 복제


참고 자료

마지막 업데이트