[Docker / Kubernetes] 6-2. GCP Artifact Registry

서준교·2021년 8월 30일
0

Docker / Kubernetes

목록 보기
7/15
post-thumbnail

👉 이 게시글은 도커 / 쿠버네티스 온라인 부트캠프 with 카카오엔터프라이즈 강의를 바탕으로 작성되었습니다.

🤔 GCP Artifact Registry란?

Google Cloud Platform에서 제공하는 이미지 저장소의 일종이다. GCP Artifact Registry를 사용하는 방법에 대해 알아보도록 하자.
먼저, google에 로그인한 후, Google Cloud의 Products 항목을 선택한다.

Artifact Registry 버튼을 누르면, 다음과 같은 페이지로 이동한다.

여기에서 Go to console 버튼을 누르게 되면,

콘솔로 이동하게 되면, 새로운 프로젝트에 대한 이름과 ID를 설정하는 화면이 나온다. 편의에 따라서 설정을 마친 후에 만들기 버튼을 눌러준다. 프로젝트 ID의 경우 한 번 설정한 뒤에는 변경이 불가능하므로, 신중하게 설정해야 한다.

현재 프로젝트를 방금 생성한 프로젝트로 변경한 뒤에 메뉴에서 API 및 서비스라이브러리 순으로 클릭한다.

그 후에, 라이브러리 항목에서 Artifact Registry APICloud Build API를 사용버튼을 눌러 활성화시킨다. 이때, 결제 수단이 설정되어 있지 않으면 API 사용이 불가능하므로, 미리 해외 결제 가능한 카드를 등록하여 결제 계정을 생성하도록 한다.


메뉴 → CI/CD → Artifact Registry → 저장소로 이동하면 위와 같은 페이지가 나온다.

저장소의 이름을 입력하고, 형식은 도커, 위치 유형은 리전, 그리고 리전은 asia-northeast3(서울)로 설정한다. 암호화키는 기본 설정된 Google 관리 암호화 키를 사용하고, 만들기 버튼을 눌러 저장소를 생성한다.

다음과 같이 입력한 정보가 출력이 되면 정상적으로 저장소가 Artifact Registry에 생성된 것이다.

🛥 Artifact Registry에 이미지 push하기

이제 터미널에서 본격적으로 GCP Artifact Registry에 이미지를 push해보도록 하자.

1. 리눅스 도커 보안 그룹 설정

$ sudo usermod -a -G docker <계정명>

보안 그룹에 현재 사용중인 계정명을 추가한다. 해당 명령어를 실행한 뒤에는 sudo 명령어 없이 docker 명령어를 사용할 수 있다.

2. google cloud SDK 패키지 경로 추가

$ echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

패키지 소스 URI를 다음 명령어로 추가한다. 이제 gcloud를 해당 경로를 통해 내려받을 수 있다.

3. google cloud SDK 공개키 내려받기

$ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

cloud SDK 설치에 사용할 공개키를 내려받는다.

Total 항목에 100%로 표시되면 정상적으로 다운로드된 것이다.

4. google cloud SDK 설치

$ sudo apt-get update && sudo apt-get install google-cloud-sdk

google cloud SDK를 설치한다. 용량이 다소 커 시간이 조금 소요되므로 약간의 인내심을 갖고 설치 완료까지 기다린다.

5. google cloud SDK 초기화

$ gcloud init

google cloud SDK 초기화를 위해 gcloud init 명령어를 실행한다. 해당 명령어를 실행하면 google 계정에 로그인할 수 있는 링크가 나온다.

해당 링크를 통해 접속하면 나오는 인증코드를 복사한 뒤 입력하면, 정상적으로 로그인이 된 것을 확인할 수 있다.

정상적으로 로그인이 되었다면 위와 같이 프로젝트를 선택하는 창이 나오는데, 위에서 생성했던 프로젝트를 선택하면 된다.

6. GCP Registry 저장소 인증

$ sudo gcloud auth configure-docker asia-northeast3-docker.pkg.dev


해당 명령은 루트 권한이 필요하므로 반드시 sudo 명령어를 붙여서 사용한다. 정상적으로 실행이 되면, /home/username/docker/config.json 이라는 configuration 파일이 생성되며, 저장소 경로가 등록된다.

인증 과정이 모두 끝났으므로, 정상적으로 google cloud에 계정이 연동되었는지 다음 명령어로 확인해보자.

$ sudo gcloud auth revoke <이메일 주소>

Revoked credentials 메시지와 함께 본인의 이메일 주소가 나오면 성공적으로 연동된 것이다.

7. 이미지 태깅

이전의 도커 레지스트리에 이미지를 push할 때처럼, Artifact Registry에 이미지의 이름을 push할 때도 이미지를 알맞은 형식으로 바꿔주어야 한다.

Artifact Registry에 생성한 저장소에 들어가면, 위처럼 파일 아이콘 옆에 복사 버튼이 있는 것을 확인할 수 있다. 복사된 내용은 다음과 같이 저장소가 인식할 수 있는 이미지 이름의 형식을 나타낸다.

asia-northeast3-docker.pkg.dev/<프로젝트 ID>/<저장소명>
asia-northeast3-docker.pkg.dev/joonkyo-docker-registry/portfolio

해당 형식으로 push하고자 하는 이미지를 태깅해주도록 하자.

8. 이미지 push

태깅 작업이 완료되었으면 양식에 맞게 변경한 이미지를 docker push 명령어를 이용해 공유한다.
digest가 출력되었으면 정상적으로 레지스트리에 push가 된 것이다.

실제로 Google Cloud Platform의 저장소 페이지에 homework라는 도커 이미지가 올라간 것을 확인할 수 있다.

해당 도커 이미지를 클릭하면 태그, 생성일과 같은 상세 정보까지 확인할 수 있다.

profile
매일 성장하는 개발자가 되고 싶습니다. 😊

0개의 댓글