관리형 Harbor 서비스 개요

이 문서에서는 Google Distributed Cloud (GDC) 에어 갭의 관리형 Harbor 서비스 (MHS)에 대해 간략하게 설명합니다.

MHS는 오픈소스 Harbor 프로젝트를 기반으로 하는 완전 관리형 컨테이너 레지스트리입니다. MHS를 GDC 환경에 통합하면 수동 유지보수 없이 격리된 환경에서 컨테이너 아티팩트의 수명 주기를 관리하는 안전하고 확장 가능한 방법을 제공합니다.

이 개요에서는 GDC 프로젝트와 Harbor 인스턴스 프로젝트 간의 관계를 비롯하여 GDC 에어 갭에서 MHS를 사용하는 데 필요한 기본 개념을 소개합니다. 또한 인프라 수준 Identity and Access Management (IAM) 역할과 레지스트리 수준 역할 기반 액세스 제어 (RBAC) 간의 관리 경계와 자동 가비지 컬렉션 및 서비스 성능 한도와 같은 핵심 기능에 대해서도 자세히 설명합니다.

이 문서는 GDC에서 MHS를 사용하고 관리하는 플랫폼 관리자 또는 애플리케이션 운영자 그룹의 개발자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 독자를 참고하세요.

GDC의 관리형 Harbor 서비스 작동 방식

운영 평면

GDC MHS는 네트워크 아키텍처의 두 가지 고유한 기능 레이어에서 작동합니다. 각 레이어는 특정 작업을 지원합니다.

  • 관리 평면 레이어: Harbor 레지스트리 인스턴스를 만들고 삭제할 수 있습니다.
  • 데이터 평면 레이어: Harbor 인스턴스에서 컨테이너 이미지를 푸시하고 가져올 수 있습니다.

GDC 프로젝트와 Harbor 인스턴스 프로젝트의 차이점

관리형 Harbor 서비스에는 두 가지 고유한 프로젝트 유형이 포함됩니다. 이러한 항목 간의 상호작용을 이해하면 적절한 레이어에서 리소스와 액세스 제어를 관리할 수 있습니다.

  • GDC 프로젝트: 인프라 관리를 위한 조직 단위입니다. 이를 사용하여 VM 및 클러스터와 같은 다른 GDC 리소스와 함께 Harbor 레지스트리 인스턴스를 관리합니다.

    • 한도: GDC 프로젝트에는 하나의 Harbor 인스턴스만 포함될 수 있습니다. 하지만 이 단일 인스턴스는 여러 GDC 프로젝트에서 공유되어 환경에 중앙 집중식 레지스트리를 제공할 수 있습니다.
    • 액세스: 인스턴스 생성, 관리, 관리 작업을 위해 GDC 프로젝트 수준 IAM 역할이 필요합니다.
  • Harbor 인스턴스 프로젝트: Harbor 인스턴스 내에 있는 아티팩트 관리를 위한 논리적 그룹화입니다. 이를 사용하여 컨테이너 이미지와 저장소 수준 액세스를 구성합니다.

    • 한도: Harbor 인스턴스는 여러 Harbor 프로젝트를 지원합니다. 이러한 프로젝트는 개별팀 또는 사용자에게 할당되어 공유 레지스트리 내에서 멀티 테넌시를 지원할 수 있습니다.
    • 액세스: 저장소를 관리하고, 관리 작업을 실행하고, 프로젝트 내에서 아티팩트 액세스를 제어하려면 레지스트리별 RBAC 역할이 필요합니다.

기능

Harbor는 Kubernetes 및 Docker용 기본 제공 클라우드 컨테이너 레지스트리 솔루션을 제공하는 Cloud Native Computing Foundation (CNCF)를 졸업한 오픈소스 프로젝트입니다. 관리형 서비스 통합을 사용하면 Harbor 인스턴스를 배포하여 GDC에서 아티팩트를 저장하고 관리할 수 있습니다. MHS는 다음과 같은 기능을 제공합니다.

  • Harbor 인스턴스는 GDC에서 자동으로 프로비저닝하고 관리합니다.
  • Harbor는 인증을 위해 IAM과 통합됩니다.
  • Harbor는 프로젝트 서비스 계정을 통한 프로그래매틱 액세스를 지원하여 자동화된 워크로드를 지원합니다.
  • Harbor 인스턴스를 최신 안정화 버전으로 업그레이드할 수 있습니다.
  • Harbor는 GDC의 규정 준수 및 품질 요구사항을 충족하도록 개선되었습니다.
  • Harbor 인스턴스는 영역 리소스입니다. 한 영역에 배포되지만 GDC 배포 유니버스 내의 모든 영역에서 액세스할 수 있습니다.

MHS의 역할 기반 액세스 제어

GDC는 관리형 Harbor 서비스 (MHS)에 대해 두 가지 고유한 레이어, 즉 GDC 프로젝트 수준과 Harbor 레지스트리 프로젝트 수준에서 역할 기반 액세스 제어 (RBAC)를 적용합니다.

프로젝트 서비스 계정은 IAM에서 발급한 단기 ID 토큰을 사용하여 프로그래매틱 방식으로 인증합니다. 이렇게 하면 Harbor 로봇 계정을 수동으로 만들고 관리할 필요가 없습니다. 서비스 계정의 IAM 역할은 Harbor 인스턴스와의 상호작용을 허용하지만 특정 데이터 작업을 승인하려면 해당 Harbor 레지스트리 프로젝트 역할을 할당해야 합니다.

레지스트리에 대한 액세스를 제어하려면 플랫폼 수준과 저장소 수준 모두에서 권한을 구성합니다.

GDC 프로젝트 액세스를 위한 IAM 역할

GDC는 IAM 역할을 사용하여 프로젝트 수준 권한을 관리합니다. 이러한 역할을 사용자 및 프로젝트 서비스 계정에 할당하여 Harbor 인스턴스에 대한 액세스를 제어할 수 있습니다.

  • 플랫폼 관리자 및 사용자: 절차 문서에서 특정 작업과 관련된 필수 역할을 식별하고 조직 IAM 관리자에게 액세스를 요청합니다. 자세한 내용은 액세스 권한 부여 및 취소를 참고하세요.
  • 서비스 계정: 이러한 동일한 IAM 역할을 프로젝트 서비스 계정에 부여하여 레지스트리 인스턴스 관리 및 아티팩트 배포와 같은 자동화된 워크로드에 대한 프로그래매틱 인증을 사용 설정합니다.
  • 인프라 운영자: GDC MHS 서비스 매뉴얼을 참조하여 특정 운영 작업에 필요한 정확한 IAM 역할을 확인합니다.

Harbor 프로젝트 액세스를 위한 레지스트리 역할

Harbor 프로젝트는 IAM 역할과 독립적으로 작동하는 자체 RBAC 메커니즘 집합을 사용합니다. 저장소와 아티팩트를 관리하려면 사용자 및 프로젝트 서비스 계정 모두에 Harbor 프로젝트 수준에서 직접 할당된 필수 역할이 있어야 합니다.

Harbor의 특정 역할 및 권한에 대한 자세한 내용은 사용자 액세스 관리를 위한 Harbor 문서를 참고하세요.

성능

Google은 시스템 한도에 지정된 한도를 지원하도록 MHS를 테스트하고 확인했습니다.

실제 성능 한도는 더 높을 수 있습니다.

가비지 컬렉션

MHS를 사용하여 레지스트리에서 이미지를 추가하고 삭제하면 시간이 지남에 따라 사용하지 않는 데이터가 쌓일 수 있습니다. 스토리지 리소스에 부담을 주지 않도록 MHS는 12시간마다 자동으로 가비지 컬렉션을 실행합니다. 가비지 컬렉션을 수동으로 구성할 필요는 없습니다.

다음 단계

작업공간과 프로젝트를 구성하여 컨테이너 이미지 관리를 시작합니다.