고급 운영 및 트러블슈팅

고급 운영 및 트러블슈팅

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 psproxy 로그 확인

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 기준)

  1. 현재 버전 백업
mkdir /backup/harbor_$(date +%F)
cp -r harbor.yml data/ /backup/harbor_$(date +%F)/
  1. 최신 버전 다운로드 및 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)|
                 +---------+           +-------------+

RSS Feed
마지막 수정일자