레플리케이션 (Replication)
1️⃣ + Harbor ↔ Harbor 또는 ↔ Docker Hub 복제 설정
Harbor는 멀티 레지스트리 환경에서 이미지를 동기화(복제)하기 위한 Replication 기능을 기본 제공합니다.
이를 통해 다른 Harbor 인스턴스나 Docker Hub, Quay, Harbor Mirror 등 다양한 원격 레지스트리와 연결할 수 있습니다.
1. 사용 시나리오 예시
- CI/CD 환경에서 개발/운영용 Harbor 간 이미지 복제
- 사내 Harbor → DMZ 구간 → 퍼블릭 클라우드 Harbor 간 복제
- 해외 리전 간 Harbor 간의 지연 없는 Pull 환경 구축
✅ 복제 구조 예시 (다중 리전 Harbor)
[Dev Harbor A] ─────┐
▲ │ Push-based
│ ▼
[Prod Harbor B] ◀────── [Cloud Harbor C]
Pull-based
2. 레지스트리 등록 방법
Administration → Registries → NEW ENDPOINT
설정 항목 | 설명 |
---|---|
Provider | Harbor / Docker Hub / etc. |
Endpoint URL | https://harbor.example.com |
Access ID / PW | 인증 계정 또는 Robot 계정 |
Verify Cert | 내부 CA 사용 시 체크 해제 필요 |
3. 예시: Harbor → Docker Hub 복제
Source: harbor.local/library/nginx
Destination: docker.io/myteam/nginx
2️⃣ + Pull-based / Push-based 차이점
Harbor의 복제 정책은 Push 기반과 Pull 기반 두 가지 유형으로 나뉩니다.
✅ 복제 트리거 방향 비교
복제 방식 | 동작 주체 | 특징 |
---|---|---|
Push-based | 소스 Harbor | 새로운 이미지 발생 시 복제 실행 |
Pull-based | 대상 Harbor | 주기적으로 소스 Harbor에서 이미지 Pull |
🔄 비교 다이어그램
Push-based
Harbor A (Source) ──push─▶ Harbor B (Target)
Pull-based
Harbor B (Target) ◀─pull── Harbor A (Source)
✅ 실무 팁
- Push-based: 트리거 중심 제어에 유리, 소스에서 통제 가능
- Pull-based: 보안 구간(방화벽) 등에서 One-Way 접근 필요 시 유리
3️⃣ + 복제 필터 및 트리거 실습
복제 정책 설정 시, 조건과 시점에 따라 필터 및 트리거를 조절할 수 있습니다.
1. 필터(Filter) 설정 항목
필터 유형 | 예시 |
---|---|
Repository | nginx , backend-* , lib/** 등 |
Tag | latest , v1.2.* , prod-* |
Label | 이미지에 메타데이터 Label 기반 |
2. 트리거(Trigger) 방식
Manual
: 사용자가 직접 실행Event-based
: 이미지 Push 시 자동Scheduled
: 주기적 실행 (크론 스케줄 사용 가능)
3. 실습 예시
✅ 필터로 nginx:prod-* 태그만 복제하기
Source Repo: library/nginx
Tag Filter : prod-*
Trigger : Event-based
Target : harbor-remote.example.com
✅ 수동 복제 실행
Administration → Replication → 실행 아이콘 클릭
4. 복제 작업 상태 확인
Execution
탭에서 복제 성공 여부 및 에러 로그 확인 가능- 실패 원인 예: 인증 실패, 인증서 문제, 필터 미매칭 등
✅ 전체 흐름도: Replication Lifecycle
[사용자 이미지 Push]
↓
[Source Harbor]
↓
[Replication Policy]
↓ ↓
[필터 매칭] [Trigger 감지]
↓ ↓
└────▶ [Target Registry]
↓
[동기화된 이미지 저장]
🧠 마무리 요약
항목 | 내용 |
---|---|
Push / Pull 기반 | 상황에 맞게 복제 방향을 선택 |
필터 기능 | Repository, Tag, Label 기반으로 복제 범위 조절 가능 |
트리거 방식 | Manual, Event, Schedule 모두 지원 |
실시간 모니터링 | UI에서 복제 상태 및 로그 추적 가능 |
마지막 수정일자