Choose a default theme

You can change your theme from the menu

Harbor

Harbor는 컨테이너 이미지와 OCI 아티팩트를 저장·배포하고 관리하는 오픈 소스 레지스트리다. 프로젝트 단위로 접근을 나누고 이미지 저장소·태그·스캔·보관 정책 등을 운영할 수 있다. 이미지를 만드는 빌드 도구나 컨테이너를 실행하는 런타임과는 역할이 다르다. 공식 관리 문서에서 운영 기능을 확인할 수 있다.

프로젝트·저장소·태그

registry.example.test/library/catalog:1.3.0이라는 이름에서 library는 프로젝트, catalog는 저장소, 1.3.0은 태그다. 태그는 사람이 읽기 쉬운 참조이고 digest는 이미지 내용을 식별하는 값이다. 태그가 덮어써질 수 있는 정책이라면 같은 이름이 나중에 다른 내용을 가리킬 수 있다.

프로젝트의 공개 여부와 사용자·자동화 계정 권한은 이미지를 읽고 쓰는 범위를 결정한다. 클라이언트는 레지스트리 인증과 TLS 신뢰를 갖춰야 하며, Kubernetes의 이미지 가져오기에도 그 실행 환경에 맞는 자격증명이 필요하다. 이미지 전달 문서가 주소 구조와 권한 조건을 설명한다.

장점과 한계

조직의 산출물을 자체 기준으로 보관하고 접근·취약점 점검·태그 정책을 한곳에서 관리할 수 있다. 외부 공개 레지스트리에 의존하는 범위를 줄이고 배포에 필요한 이미지를 추적하기도 좋다. 반면 레지스트리 자체의 인증서·데이터베이스·저장 공간·가용성과 백업을 운영해야 한다.

스캔 결과가 없다는 이유로 이미지가 안전하다고 단정할 수 없고, 알려진 취약점이 없다는 결과도 모든 위험의 부재를 증명하지 않는다. 보관 정책을 너무 공격적으로 적용하면 롤백에 필요한 이미지를 잃을 수 있다. 실행 중인 Pod에 이미지가 남아 있는 것과 새 노드가 다시 가져올 수 있다는 사실도 다르다.

도서 검색 이미지 확인 예시

연습 레지스트리에 library 프로젝트와 catalog 이미지가 있고, 권한 있는 클라이언트가 로그인했으며 TLS를 신뢰한다고 가정한다. 다음은 이미지 한 버전을 내려받고 로컬에 기록된 digest를 확인하는 예시다. 가상 도메인은 실제 연습 레지스트리로 대체해야 한다.

docker pull registry.example.test/library/catalog:1.3.0
docker image inspect registry.example.test/library/catalog:1.3.0 --format '{{json .RepoDigests}}'

출력의 digest를 배포 기록과 비교하면 태그 이름만 비교할 때보다 어떤 내용을 사용했는지 명확히 알 수 있다. 여러 플랫폼용 이미지의 인덱스와 플랫폼별 이미지 digest는 구분할 필요가 있다. 이 조회는 컨테이너를 실행하거나 이미지를 업로드하는 작업은 아니다.

자주 생기는 오해

버전 태그를 고정해 적었다고 태그 자체가 불변인 것은 아니다. 필요한 프로젝트에는 태그 불변 규칙과 보관 정책을 함께 검토한다. 태그 제거·아티팩트 삭제·실제 저장 공간 회수는 같은 단계가 아니므로 정책을 적용하기 전에 참조와 복구 요구를 확인한다.

참고 자료

Kubernetes 클러스터 구성 길잡이

전체 구조

Kubernetes · etcd

설치와 조작

kubeadm · kubelet · kubectl

컨테이너 실행

containerd

네트워크와 이름

Calico · CoreDNS · MetalLB

진입과 메시

Kubernetes Gateway API · Istio · Istio Ambient

설치와 배포 관리

Helm · Argo CD · Argo Rollouts

이미지 공급

Harbor · Trivy · GitHub Actions