고급 운영 및 트러블슈팅
1️⃣ + 로그 확인 및 문제 해결
Harbor는 여러 컴포넌트로 구성되어 있으며, 각각의 서비스는 컨테이너로 분리되어 있습니다. 문제가 발생했을 때 로그를 빠르게 확인하고 원인을 파악하는 능력이 매우 중요합니다.
1. 주요 컴포넌트 로그 위치 (Docker Compose 기준)
docker-compose logs -f core # API 서버
docker-compose logs -f jobservice # 백엔드 작업
docker-compose logs -f registry # 이미지 저장소
docker-compose logs -f notary-server # 서명 서버
docker-compose logs -f proxy # Nginx reverse proxy
2. 문제 해결 체크리스트
문제 상황 | 점검 포인트 |
---|---|
로그인 실패 | core 로그에서 auth 관련 오류 확인 |
이미지 Push 안됨 | registry, jobservice 로그 확인 |
인증서 오류 | proxy(Nginx)의 설정 및 인증서 파일 확인 |
UI 접속 불가 | docker ps 및 proxy 로그 확인 |
2️⃣ + Storage 관리 (파일시스템 / S3 등)
Harbor는 기본적으로 파일시스템을 사용하지만, AWS S3, Azure Blob, GCS 등 외부 오브젝트 스토리지를 사용할 수 있습니다.
1. 파일 시스템 기반 저장소 구조
/data/registry/docker/registry/v2/repositories/
└── <project_name>
└── <repository_name>
└── _manifests/
2. S3 연동 구성 예시 (registry config 변경)
common/config/registry/config.yml
수정:
storage:
s3:
accesskey: <your-access-key>
secretkey: <your-secret-key>
region: us-east-1
bucket: harbor-registry
encrypt: true
secure: true
v4auth: true
⚠️ 외부 저장소 사용 시, 백업 전략과 IAM 권한 관리도 필수로 고려해야 합니다.
3️⃣ + 업그레이드 및 백업 전략
운영 환경에서는 중단 없이 안정적인 업그레이드와 정기 백업이 중요합니다.
1. 백업 대상
- DB (PostgreSQL): 사용자, 프로젝트 정보
- Registry Storage: 이미지 레이어 및 메타데이터
- Harbor config 파일:
harbor.yml
,common/config/
2. 업그레이드 절차 (Docker Compose 기준)
- 현재 버전 백업
mkdir /backup/harbor_$(date +%F)
cp -r harbor.yml data/ /backup/harbor_$(date +%F)/
- 최신 버전 다운로드 및
prepare
실행
wget https://github.com/goharbor/harbor/releases/download/v2.X.X/harbor-online-installer-v2.X.X.tgz
tar xvf harbor-online-installer-v2.X.X.tgz
cp harbor.yml ./harbor/
cd harbor
./prepare
./install.sh
🎯 Zero downtime 업그레이드를 원한다면, Kubernetes + Helm 배포를 고려하세요.
4️⃣ + Rate Limit, 성능 최적화 팁
대규모 팀이나 CI/CD 환경에서는 리소스 제한과 성능 이슈가 자주 발생합니다.
1. Rate Limit 설정 (API abuse 방지)
harbor.yml
:
rate_limit:
enabled: true
redis_url: redis://redis:6379
default_limit: 100
default_burst: 200
2. Garbage Collection 주기 설정
- UI 또는 API를 통해 스케줄링
- 불필요한 이미지 레이어 정리
# 즉시 실행
curl -u admin:Harbor12345 -X POST https://harbor.example.com/api/v2.0/system/gc/schedule
3. 성능 최적화 팁
항목 | 권장사항 |
---|---|
Reverse Proxy | Nginx → HTTP/2 + KeepAlive |
데이터 저장 | SSD 스토리지 또는 S3 연동 |
트래픽 분산 | Harbor → Load Balancer 앞단 구성 |
CI/CD 연동 | Robot Account 사용하여 인증 비용 절감 |
📊 Harbor 운영 아키텍처 예시
+--------------------+
| GitLab / Jenkins |
+---------+----------+
|
| Docker Push
v
+-----------------------+------------------------+
| Harbor Load Balancer |
+-----------------+-------------+----------------+
| |
+-------------+---+ +---+-------------+
| Harbor Core | | Job Service |
+----------------+ +------------------+
| |
| v
+----v----+ +------v------+
| Registry| <-----> | Storage (S3)|
+---------+ +-------------+
마지막 수정일자