Container Registry에서 Artifact Registry로 자동 마이그레이션

자동 마이그레이션 도구를 사용하여 Container Registry에서 Artifact Registry에 호스팅된 gcr.io 저장소로 전환할 수 있습니다.

다운타임이나 서비스 중단 없이 트래픽을 수신하는 Container Registry 엔드포인트에서 Artifact Registry gcr.io 저장소로 마이그레이션을 수행할 수 있습니다.

자동 마이그레이션 도구는 다음 작업을 실행할 수 있습니다.

  • 해당 리전에 나열된 각 gcr.io 프로젝트에 대해 Artifact Registry에 gcr.io 저장소를 만듭니다.
  • 각 저장소에 대한 IAM 정책을 제안하고 사용자 환경설정에 따라 정책을 적용하거나 애플리케이션을 건너뜁니다.
  • gcr.io 엔드포인트에서 Artifact Registry로 모든 트래픽을 리디렉션합니다.
  • 이미 리디렉션을 사용 설정했더라도 Container Registry에 저장된 모든 컨테이너 이미지를 Artifact Registry gcr.io 저장소에 복사합니다.

시작하기 전에

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. Enable the Artifact Registry API.

    Enable the API


    이 단계를 건너뛰면 자동 이전 도구에서 Artifact Registry API를 사용 설정하라는 메시지를 표시합니다.

필요한 역할

자동 마이그레이션 도구를 사용하여 Artifact Registry에서 gcr.io 저장소로 전환하려면 다음 역할이 필요합니다.

서비스 계정 역할:

[email protected]의 이메일 주소 또는 Artifact Registry 서비스 계정과 함께 gcr.io 이전 서비스 계정을 사용하여 Artifact Registry의 gcr.io 저장소로 전환할 수 있습니다.

이전에 사용하는 서비스 계정에 Container Registry에서 Artifact Registry로 이미지를 복사하는 데 필요한 권한이 있는지 확인하려면 관리자에게 이전에 사용하는 서비스 계정에 Container Registry 프로젝트, 폴더 또는 조직에 대한 스토리지 객체 뷰어 (roles/storage.objectViewer) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 이전에 사용 중인 서비스 계정에 필요한 권한을 부여할 수도 있습니다.

사용자 역할:

Artifact Registry에 호스팅된 gcr.io 저장소로 전환하는 데 필요한 권한을 얻으려면 관리자에게 이전하려는 Google Cloud 조직 또는 프로젝트에 대한 Artifact Registry Container Registry Migration Admin 역할 (roles/artifactregistry.containerRegistryMigrationAdmin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

Artifact Registry에 호스팅된 gcr.io 저장소로 마이그레이션

gcloud artifacts docker upgrade migrate 명령어를 사용하면 Google Cloud 프로젝트 한 개 또는 여러 개를 동시에 마이그레이션할 수 있습니다.

gcr.io 저장소로 마이그레이션하려면 다음 명령어를 실행합니다.

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS

여기서 PROJECTS는 Artifact Registry에 호스팅된 gcr.io 저장소로 마이그레이션하려는 단일 프로젝트의 프로젝트 ID 또는 Artifact Registry에 호스팅된 gcr.io 저장소로 마이그레이션할 프로젝트 ID의 쉼표로 구분된 목록입니다.

마이그레이션 도구는 다음 단계를 완료합니다.

  • 해당 리전에 나열된 각 gcr.io 프로젝트에 대해 Artifact Registry에 gcr.io 저장소를 만듭니다.
  • 각 저장소에 대한 IAM 정책을 제안하고 사용자 환경설정에 따라 정책을 적용하거나 애플리케이션을 건너뜁니다.
  • gcr.io 엔드포인트에서 Artifact Registry로 모든 트래픽을 리디렉션합니다. Artifact Registry는 모든 컨테이너 이미지가 Artifact Registry에 복사될 때까지 요청 시 Container Registry에서 누락된 이미지를 복사하여 일시적으로 제공합니다.
  • gcr.io 버킷에 저장된 모든 컨테이너 이미지를 Artifact Registry에서 호스팅되는 새로 생성된 gcr.io 저장소에 복사합니다.
  • 요청 시간 복사를 사용 중지합니다. Artifact Registry에서 호스팅되는 gcr.io 저장소는 더 이상 Container Registry에 종속되지 않습니다.

지난 30~180일 동안 Container Registry에서 가져온 이미지만 복사하려면 --recent-images=DAYS 플래그를 포함하면 됩니다. DAYS를 도구에서 가져오기 여부를 확인해야 하는 일수(30~180일)로 바꿉니다.

각 이미지의 최근에 업로드된 특정 버전 수를 복사하려면 --last-uploaded-versions=VERSIONS 플래그를 포함하면 됩니다. VERSIONS을 각 이미지에 대해 복사할 버전의 수로 바꿉니다. 복사 중에 새 이미지가 업로드되면 지정된 버전 수보다 많은 버전이 복사될 수 있습니다.

--recent-images 플래그와 --last-uploaded-versions 플래그는 상호 배타적이며 함께 사용할 수 없습니다.

오류나 시간 초과가 발생하면 명령어를 안전하게 다시 실행할 수 있으며 완료된 단계를 건너뜁니다.

이미지 복사

실행 도구는 컨테이너 이미지를 실행할 때 자동으로 이미지를 복사하지만, 자동 마이그레이션의 다른 모든 단계를 건너뛰려면 도구를 사용하여 --copy-only 플래그를 전달할 수 있는 Artifact Registry에 이미지를 복사할 수 있습니다.

Container Registry에서 Artifact Registry에서 호스팅되는 gcr.io 저장소로 이미지를 복사하려면 다음 명령어를 실행합니다.

gcloud artifacts docker upgrade migrate \
    --projects=PROJECTS \
    --copy-only

여기서 PROJECTS는 Artifact Registry에 호스팅된 gcr.io 저장소로 마이그레이션하려는 단일 프로젝트의 프로젝트 ID 또는 Artifact Registry에 호스팅된 gcr.io 저장소로 마이그레이션할 프로젝트 ID의 쉼표로 구분된 목록입니다.

이 도구는 모든 마이그레이션 단계를 건너뛰고 지정된 프로젝트의 이미지를 Container Registry에서 Artifact Registry 호스팅 gcr.io 저장소에 복사합니다.

다음 단계