본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP] Container Registry image migration

by BTC_오은영석사 2023. 8. 6.

베하~! 안녕하세요 BTC금쪽상담소의 오은영석사와 금쪽이 입니다~

무더운 여름 별탈없이 지내셨나요?? 이 무더운 날엔 집에서 저의 BTC금쪽상담소와 함께 보내는 건 어떨까요?ㅎㅎ

이번시간에 배워볼 내용은 image migration입니다!

간혹 다른 프로젝트로 이미지를 옮겨야 하는 일이 발생하곤 합니다. 

그럴때 사용할 수 있는 방법에 대해 알아보도록 하겠습니다. 준비 되셨나요?! 바로 알아보도록 하겠습니다!!

 


 

저희는 이미지 복사에 대해 배워보겠습니다!

우선 cli환경으로 사용하기 위해 앞서 말쓴드린 방법으로 환경구성을 부탁드립니다~!

그 방법이 기억안나시는 분은 아래 링크를 통해 환경 구성 후 봐주시기 바랍니다.

 

↓            ↓            ↓            ↓            ↓            ↓            ↓            

 

 

[GCP] gcloud SDK 환경 구성

베하~! 안녕하세요 금쪽상담소의 오은영석사와 금쪽이 입니다. 이번주도 금쪽상담소가 돌아왔습니다~! 짝짝짝 이번 시간에는 gcloud SDK 환경 구성 방법에 대해 알아보겠습니다!! 다들 준비 되셨나

btcd.tistory.com

 

명령어 gcrane을 사용하여 이미지 복사를 진행하겠습니다.

 

gcrane의 이점

  • 단일 명령어를 사용하여 지정된 경로 아래의 모든 이미지 또는 프로젝트의 멀티 리전 호스트에 저장된 모든 이미지를 포함한 이미지 모음을 복사합니다.
  • 이미 업로드된 이미지 레이어를 건너뜁니다.
  • 동일한 Google Cloud 멀티 리전 내에서 Container Registry와 Artifact Registry 간에 이미지를 복사할 때 빠른 복사 옵션입니다.

 

1. gcrane 명령어 설정

1-1. Google에서 제공하는 GitHub저장소에서 gcrane 다운로드

curl -L \
https://github.com/google/go-containerregistry/releases/latest/download/go-ontainerregistry_Linux_x86_64.tar.gz \
-o go-containerregistry.tar.gz

1-2. gcrane 명령어를 실행 가능하게 설정

- tar -zxvf go-containerregistry.tar.gz
- chmod +x gcrane
- sudo mv gcrane /usr/local/bin/

 

2. 권한 부여

  • 대상 프로젝트의 Artifact Registry Google 관리 서비스 계정에는 스토리지 객체 뷰어(roles/storage.objectViewer) 역할이나 소스 프로젝트에서 동일한 권한을 가진 역할이 필요
gcloud projects add-iam-policy-binding "해당 프로젝트" \   
--member='serviceAccount:service-"프로젝트ID"@gcp-sa-artifactregistry.iam.gserviceaccount.com' \   
--role='roles/storage.objectViewer'

 

3. 이미지 복사

3-1. 단일 이미지 복사

gcrane cp GCR-LOCATION.gcr.io/PROJECT/IMAGE:TAG \
AR-LOCATION.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
  • GCR-LOCATION : Container Registry 호스트의 멀티 리전(asia, eu, us)
  • AR-LOCATION : 저장소의 리전 또는 멀티 리전
  • PROJECT : 프로젝트 ID입니다.
  • REPOSITORY : Artifact Registry 저장소의 이름
  • GCR-IMAGE : Container Registry에서 복사할 이미지
  • AR-IMAGE : Artifact Registry에 있는 이미지의 이름
  • TAG : 해당 이미지 태그

3-2. 경로 아래의 모든 이미지 복사

gcrane cp -r GCR-LOCATION.gcr.io/PROJECT/GCR-PATH \
AR-LOCATION.pkg.dev/PROJECT/REPOSITORY/AR-PATH
  • 옵션 -r을 통해 전제 이미지 복사 가능합니다.

이 방법 외에도 Docker와 gcloud를 사용하는 방법도 있습니다.

 

1. Docker

1-1. Doker pull로 이미지 가져오기

docker pull "이미지 경로"

1-2. Docker push로 이미지 생성하기

docker push "생성할 경로"

 

2. gcloud

gcloud container images add-tag "복사할 이미지 경로" "생성할 이미지 경로"
  • 해당 명령어를 사용하여 Container Registry의 이미지를 Artifact Registry 저장소에 복사

 

이렇게 image migration 방법에 대해 알아보는 시간이었는데 유익한 시간이였을까요?!

이 방법들을 통해 손쉽게 이미지들을 복사 생성을 할 수 있습니다.

금쪽이들 이제부터 안전하게 image migration할 수 있겠죠?!

 

그럼 다음 시간에 만나요! 베빠~!~!

 

출처 : https://cloud.google.com/artifact-registry/docs/docker/copy-from-gcr?hl=ko#gcrane-copy

'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글

[GCP] Dataproc  (0) 2023.08.17
[GCP] GCR과 GAR의 차이점  (0) 2023.08.06
GCP custom rule 생성  (0) 2023.08.04
GCP의 Image Service : Cusotm Image & Instance Template  (0) 2023.08.03
Workforce Identity (IdP)  (0) 2023.07.31

댓글