💻 CSP/GCP

[GCP] Artifact Registry

heywantodo 2023. 7. 18. 18:39
728x90
반응형

[GCP] Artifact Registry

도커 이미지를 GCP의 이미지 저장소에 Push 하려고 알아보니, 

 

기존 구글의 Container Registry는 지원이 중단 되었고,

2024년 5월 15일 이후에는 Artifact Registry만 지원한다고 한다.

내가 못찾은 건지는 모르겠는데 Container Registry는 신규 저장소 생성이 안되는 것 같음

 

Artifact Registry

Docker 컨테이너 이미지를 저장하고 관리하기 위한 저장소

Cloud Build를 이용해 Google Cloud Cl/CD 서비스 또는 기존 CI/CD 도구와 통합할 수 있음

 

또한 컨테이너 분석을 사용하여 컨테이너 메타 데이터를 관리하고 컨테이너 취약점을 스캔

 

저장소 생성

나는 Google Cloud의 CI/CD 서비스는 사용하지 않고 Jenkins와 연동해서 사용 할 예정이다.

먼저 Artifact Registry API를 사용을 클릭해준다.

완료되면 Arfifact Registry 콘솔에 접근이 가능하다.

먼저 저장소를 생성해준다.

표준, 원격, 가상 모드가 있길래 조금 찾아봤다. 아래 링크 참고

https://cloud.google.com/artifact-registry/docs/repositories/virtual-repo?hl=ko 

 

가상 저장소 만들기  |  Artifact Registry 문서  |  Google Cloud

의견 보내기 가상 저장소 만들기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 미리보기 이 기능에는 Google Cloud 서비스 약관의 GA 이전 제공 서비스 약관이

cloud.google.com

표준 
기본 저장소 모드, 비공개 패키지와 같은 아티팩트를 표준 저장소에 직접 업로드하거나 게시

개별 표준 저장소에서 직접 다운로드 할수도 있지만
가상 저장소를 사용해서 저장소 그룹에 액세스하면 도구 구성이 간소화

원격 (언어 패키지 저장소만)
Docker Hub, Maven Central과 같은 공개 저장소의 아티팩트에 대한 풀스루 캐시
외부 종속 항목을 더 세부적으로 제어할 수 있도록 공개 저장소에 대한 프록시로 작동

솔직히 원격 저장소 설명이 너무 어려워서 무슨말인지 잘 모르겠다 😂

그냥 표준 저장소로 생성

 

리전은 지금 사용하고있는 쿠버네티스 엔진의 리전과 동일하게 설정했다

필요한 경우 다중 리전으로 사용하면 될 듯

 

이미지 Push하기

저장소가 생성됐다면 도커 이미지를 Push해보자

Docker Image 생성 방법은 아래 포스팅을 참고

https://heywantodo.tistory.com/118

 

[GCP] GKE로 웹 애플리케이션 배포 (1)

[GCP] GKE로 웹 애플리케이션 배포 (1) GKE로 웹 애플리케이션을 배포하는 과정은 다음과 같다. 1. 웹 애플리케이션 생성 2. Docker Image 생성 3. 생성 한 Docker Image로 Deployment 생성 4. NodePort 열어줌 5. Ingres

heywantodo.tistory.com

그리고 당연히 registry에 대한 access 권한이 필요하다

https://cloud.google.com/artifact-registry/docs/access-control?hl=ko#permissions 

 

역할 및 권한 구성  |  Artifact Registry 문서  |  Google Cloud

의견 보내기 역할 및 권한 구성 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 Artifact Registry 저장소에 권한을 부여하는 방법을 설명합니다

cloud.google.com

image와 권한이 준비 완료됬다면 이제 진짜 이미지를 push해보자

 

1. GCP Registry 저장소 인증

gcloud auth configure-docker us-central1-docker.pkg.dev

해당 명령어를 실행하면  /home/username/docker/config.json 파일이 생성되며 저장소 경로가 등록된다.

 

2. Tag

도커 허브에 push 할 때와 같이 Tag를 설정을 해주어야 한다.

생성 된 Registry에 복사 버튼이 있는데 저걸 클릭하면 확인할 수 있다.

us-central1-docker.pkg.dev/프로젝트ID/test-registry

tag 해주자

docker tag flask-login us-central1-docker.pkg.dev/careful-synapse-389701/test-registry/flask-login:latest

 

3. Push

아래 명령어를 사용해서  push

docker push us-central1-docker.pkg.dev/careful-synapse-389701/test-registry/flask-login:latest

성공적으로  push가 된 모습을 확인할 수 있다.

 

콘솔에서도 확인해보자

Nice ~ 😉👍

이미지를 클릭해보면 속상값이 나온다.

computer engine이나 GKE에 바로 배포하는 기능도 있는듯?

 태그 수정도 가능하며 친절하게 가져오는 방식도 알려줌

Cloud Shell을 사용해서 그런가 인증 방식이 굉장히 간편하다.

 

참고

https://velog.io/@jkseo50/Docker-Kubernetes-6-2.-GCP-Artifact-Registry

728x90
반응형