- 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 설정 가능)
-
- docker cli (코드)
- docker tag [image_name] <harbor_address>/[project_name]/[image_name]:[tag]
- Tag 목록에서 (2) 를 통해 image가 추가된 것 확인 가능 기존에는 1개만 존재했는데 두번째 image를 추가할 때 이렇게 확인 가능
- 인터페이스
- 기존에 있는 iamge 라면 add tag 버튼을 통해 추가 가능
- docker cli (코드)
- 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 내에 있는 이미지를 다른 프로젝트에도 적용할 때 활용
- Artifact > Actions > Copy
- SHA256 (Secure Hash Algorithm)
- 대표적인 해시 함수
- 메시지, 파일, 데이터 무결성 검증에 활용
- sha value라고 함
- 웹 인터페이스 Digest Copy 에서 그 값을 알 수 있음
- Label
- role based 에 의해 사용됨
- 관리자 (Administrator)
- 개발자 (Developer)
- 사용자 (User)
- 분류된 Label 을 기준으로 오른쪽 검색창에서 검색 가능
- Global level label
- 모든 project 에서 활용 가능
- Project level label
- 각 Project별로 label 설정 가능
- 다른 Project 에서는 해당 label 사용 불가
- role based 에 의해 사용됨
- User
- 웹 인터페이스 Adminisration > Users
- set as admin > administrator로 지정
- User 인터페이스에서 설정을 마치면, Project > Members에서 user 지정 가능
- Role
- project member 별 Role 설명
- Configuration
- Authentication 설정 가능
- Docker Image Tag의 특징
- 두가지 image에 동일한 tag를 쓰면 기존에 있던 image의 tag가 사라지고, 새로운 image에 tag가 생김
- Tag Retention (태그 보존) Policy
- Image tag를 일정기간동안 보존하는 기능
- tag 뿐만 아니라 artifacts도 일정기간동안만 보존하도록 지정하는 것 가능
- 관리자가 설정 가능
- 더이상 사용되지 않는 tag 삭제 또는 과거 버전의 image를 일정 기간 보존하는데 사용
- ACTION / DISABLED / EDIT / DELETE
- 조건
- Matching : 포함시킬 조건
- ** : 모든 조건을 의미
- Excluding : 제외시킬 조건
- ** : 모든 조건을 의미
- Matching : 포함시킬 조건
- Dry Run / Run Now >> 적용 후, log를 통해 확인 가능
- Dry Run : 실제 데이터를 변경하지 않고, 미리 확인해보는 용도
- Dry Run 누른 후, 우측에 있는 새로고침 버튼 눌러야 적용되는 것 확인 가능
- Run Now : 실제 데이터에 적용됨
- Dry Run : 실제 데이터를 변경하지 않고, 미리 확인해보는 용도
- Image tag를 일정기간동안 보존하는 기능
- 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 |