Skip to main content

Harbor 설치가이드

Harbor 설치

  1. 사양정보
  2. hardware spec
      최소사양 권장사양
    CPU 2Core 4 Core
    Memory 4G 8G
    Disk 40GB 160GB
  3. software spec
    Software Version
    Docker 17.06.0 이상
    Docker Compose 1.18.0 이상
  4. Harbor설치
    1. 설치파일 다운로드
    2. harbor설치파일 : Download URL : https://github.com/goharbor/harbor/releases
    3. docker-compose : download URL : https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)
  5. 압축파일 해제
    ># tar -xvf harbor-offline-installer-v1.7.6.tgz
  6. 설정파일 변경
    ># vi harbor.cfg
    hostname = harbor
  7. Docker 실행시 iptables 정책 미생성 옵션 설정
    ># cat /etc/docker/daemon.json
    {
    "iptables": false
    }

Harbor 설정정보

파라미터 정보 용  도
hostname 설치하는 서버 호스트네임입력
Database-password Postgres root 패스워드
Database-max_idle_conns 최대 유휴연결 수(0은 무제한), 기본값은 50
Database-max_open_conns 최대 연결 수(0은 무제한), 기본값은 100
data_volume Harbor에 저장할 데이터 경로(호스트경로), 기본값은 /data
Clair-updaters_interval Clair 업데이트 간격(0은 비활성화), 기본값은 12시간
max_job_workers 이미지 복제작업 최대 수, 기본값은 10
Notification-webhook_job_max_retry Webhook 최대 재시도 횟수, 기본값은 10
Chart-absolute_url

Enable : 차트에서 사용할 절대URL경로
disabled : 차트에서 사용할 상대URL경로

log_level Debug, info, warning, error, fatal 중 선택, 기본값은 info
log_rotate_count 로그파일 최대 생성갯수, 기본값은 50
log_rotate_size 로그파일당 최대 사이즈, 기본값은 200M
log_external_endpoint syslog연동시 사용
log_location 로그를 저장할 디렉토리, 기본값은 /var/log/harbor
Proxy-http_proxy http프록시 사용시 설정
Proxy-https_proxy https프록시 사용시 설정
Proxy-no_proxy 프록시 미사용시 설정
  1. 설치수행 (추후 속성변경 혹은 재설치시 필요한 파일들이기 때문에, 데이터 삭제하면 안됨)
     ># install.sh
  1. 설치옵션 설정
    옵션정보 설  명
    --with-notary https를 사용할 경우 설정
    --with-clair 보안취약점에 대한 정적분석 기능 활성화
    --with-chartmuseum 차트기능 활성화
  2. Docker Container 실행상태 확인
    > # docker container ls
    CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                    PORTS                                                              NAMES
    08ba147d3fe2        goharbor/nginx-photon:v1.7.6             "nginx -g 'daemon ..."   58 minutes ago      Up 21 minutes (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
    4867028a2f0d        goharbor/harbor-portal:v1.7.6            "nginx -g 'daemon ..."   58 minutes ago      Up 21 minutes (healthy)   80/tcp                                                             harbor-portal
    dfca94c54bd5        goharbor/harbor-jobservice:v1.7.6        "/harbor/start.sh"       58 minutes ago      Up 21 minutes                                                                                harbor-jobservice
    debd6e8e8606        goharbor/harbor-core:v1.7.6              "/harbor/start.sh"       58 minutes ago      Up 21 minutes (healthy)                                                                      harbor-core
    e0b1a1d488b6        goharbor/clair-photon:v2.0.8-v1.7.6      "/docker-entrypoin..."   58 minutes ago      Up 21 minutes (healthy)   6060-6061/tcp                                                      clair
    b9ab0d96e2f4        goharbor/registry-photon:v2.6.2-v1.7.6   "/entrypoint.sh /e..."   58 minutes ago      Up 21 minutes (healthy)   5000/tcp                                                           registry
    0fe2e40d93f4        goharbor/harbor-db:v1.7.6                "/entrypoint.sh po..."   58 minutes ago      Up 21 minutes (healthy)   5432/tcp                                                           harbor-db
    97a3c0c4788a        goharbor/harbor-registryctl:v1.7.6       "/harbor/start.sh"       58 minutes ago      Up 21 minutes (healthy)                                                                      registryctl
    e8a73d34601c        goharbor/redis-photon:v1.7.6             "docker-entrypoint..."   58 minutes ago      Up 21 minutes             6379/tcp                                                           redis
    acb08e237de1        goharbor/harbor-adminserver:v1.7.6       "/harbor/start.sh"       58 minutes ago      Up 21 minutes (healthy)                                                                      harbor-adminserver
    2da452ad1ffe        goharbor/harbor-log:v1.7.6               "/bin/sh -c /usr/l..."   58 minutes ago      Up 21 minutes (healthy)   127.0.0.1:1514->10514/tcp                                          harbor-log
  3. 웹 브라우저에서 harbor 로그인 (기본 로그인 정보 : admin / Harbor12345), 로그인 후 반드시 패스워드 변경 필요

Harbor 운영

  1. 계정관리
    1. 계정추가
      1. Administration -> Users 진입
      2. New User 선택 후 사용자명,  email주소, 패스워드 순으로  입력

        * 패스워드는 8-20자, 최소 대소문자/숫자 1개씩 입력되어야 함
    2. 관리자 계정 권한 변경
      1. Administratoration -> User진입
      2. 변경할 계정명 선택 후 SetAdmin 선택 
  2. 프로젝트 관리
    1. 프로젝트 생성
      1. Project -> NEW PROJECT -> 생성할 Project이름 -> 속성 입력
        Access Level : 프로젝트의 공개여부 (Public으로 설정하는 경우 모든 계정에서 프로젝트가 조회됨), 기본값은 private
    2. 프로젝트 권한설정
      1. 생성한 프로젝트 →  Member  진입
      2. +USER 메뉴 선택 후 추가할 계정명 입력
      3. 부여할 권한 선택
        Role 이름 권  한
        Project Admin push / pull / delete
        Developer push / pull
        Guest Pull

Harbor 재설정

  1. Harbor 구성 재설정 (harbor 설치파일 파일(install.sh 있는 곳으로 이동)
    ># docker-compose down -v

    설정정보 변경 작업 진행
    ># docker-compose up -d

  2. 실행중인 컨테이너 정보만 중지 (이미지데이터와 DB파일 유지)
    ># docker-compose down -v
  3. 기존정보 삭제 후 재설치시
    ># rm -rf /data/database
    ># rm -rf /data/registry