본문 바로가기

Harbor

Harbor 개념 및 사용 방법

  • Harbor : managing and creating the project 하는 도구
    ex) create repositories, manage repositories, push images into the repositories, manage the images within the repositories
  • project : collection of repositories
    project 없이 repository 혼자 존재할 수 없다. 무조건 project 가 있어야 함
  • Harbor Web 하단에 있는 Harbor API V2.0 참고
    Swagger를 참고하면 사용 방법에 대해 구체적으로 알 수 있음

  • RBAC (Role Based Access Control)
    • 역할 기반 액세스 제어
    • 사용자가 수행할 수 있는 작업, 볼 수 있는 데이터를 제한, 제어 도구
      • 스마트폰 잠금 해제하기 위해 비밀번호를 아는 것
    • 각 사용자에게 하나 이상의 ‘역할’ 할당
    • 각 역할에 서로 다른 권한 부여
      • ex) 영업 사원은 인사팀의 인사 평가 자료에 접근 불가하도록 하는

 

  • Project 생성
    • Storage Quota 값 “-1” : 용량 제한 없음

 

  • Project > Repository > Image
    • 이렇게 hierarchy를 가지고 있음
    • project를 삭제하기 전 반드시 Repository를 삭제해줘야 함

 

  • Image
    • tag 하는 방법 (하나의 image 에 여러 개의 tag 설정 가능)
      1. docker cli (코드)
        • docker tag [image_name] <harbor_address>/[project_name]/[image_name]:[tag]
        • Tag 목록에서 (2) 를 통해 image가 추가된 것 확인 가능 기존에는 1개만 존재했는데 두번째 image를 추가할 때 이렇게 확인 가능
      2. 인터페이스
        • 기존에 있는 iamge 라면 add tag 버튼을 통해 추가 가능
  • push 하는 방법
    • docker push <harbor_address>/[project_name]/[image_name]:[tag]
    • image를 push하면 자동으로 repository가 생성되고, 이름도 자동으로 지정됨
      • 만약 원하는 repository 이름이 있다면 웹 인터페이스에서 변경 가능
  • pull 하는 방법
    • docker cli에 가기전 웹 인터페이스에서 해당 tag를 가진 image pull 하는 코드 복사 가능

 

  • Harbor Artifact
    • Artifact > Actions > Copy
      • project 내에 있는 이미지를 다른 프로젝트에도 적용할 때 활용

 

  • SHA256 (Secure Hash Algorithm)
    • 대표적인 해시 함수
    • 메시지, 파일, 데이터 무결성 검증에 활용
    • sha value라고 함
    • 웹 인터페이스 Digest Copy 에서 그 값을 알 수 있음

 

  • Label
    • role based 에 의해 사용됨
      • 관리자 (Administrator)
      • 개발자 (Developer)
      • 사용자 (User)
    • 분류된 Label 을 기준으로 오른쪽 검색창에서 검색 가능
      1. Global level label
      • 모든 project 에서 활용 가능
      1. Project level label
      • 각 Project별로 label 설정 가능
      • 다른 Project 에서는 해당 label 사용 불가

 

 

  • Docker Image Tag의 특징
    • 두가지 image에 동일한 tag를 쓰면 기존에 있던 image의 tag가 사라지고, 새로운 image에 tag가 생김

 

  • Tag Retention (태그 보존) Policy
    • Image tag를 일정기간동안 보존하는 기능
      • tag 뿐만 아니라 artifacts도 일정기간동안만 보존하도록 지정하는 것 가능
    • 관리자가 설정 가능
    • 더이상 사용되지 않는 tag 삭제 또는 과거 버전의 image를 일정 기간 보존하는데 사용
    • ACTION / DISABLED / EDIT / DELETE
    • 조건
      • Matching : 포함시킬 조건
        • ** : 모든 조건을 의미
      • Excluding : 제외시킬 조건
        • ** : 모든 조건을 의미
    • Dry Run / Run Now >> 적용 후, log를 통해 확인 가능
      • Dry Run : 실제 데이터를 변경하지 않고, 미리 확인해보는 용도
        • Dry Run 누른 후, 우측에 있는 새로고침 버튼 눌러야 적용되는 것 확인 가능
      • Run Now : 실제 데이터에 적용됨

 

  • Tag Immutability (태그 불변성)
    • Image Tag가 변경되지 않도록 하는 기능
    • 한 번 tag가 지정되면, 해당 tag는 변경할 수 없도록 하는 것
      • 동일한 tag 가진 image가 push 될 수 없음
      • 해당 tag 가진 image가 delete 될 수 없음
    • 신뢰성, 안정성을 보장
    • 버전 관리 및 보안 강화

 

  • Tag Retention Rule과 Tag Immutability 두가지가 적용될 경우 Tag Retention의 개수와 다를 수 있음 Immutability 때문에

'Harbor' 카테고리의 다른 글

Harbor 설치 (AWS EC2)  (0) 2024.05.19
Harbor 용어 및 개념  (0) 2024.05.19