[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가 된 모습을 확인할 수 있다.
콘솔에서도 확인해보자
이미지를 클릭해보면 속상값이 나온다.
computer engine이나 GKE에 바로 배포하는 기능도 있는듯?
태그 수정도 가능하며 친절하게 가져오는 방식도 알려줌
Cloud Shell을 사용해서 그런가 인증 방식이 굉장히 간편하다.
참고
https://velog.io/@jkseo50/Docker-Kubernetes-6-2.-GCP-Artifact-Registry
'💻 CSP > GCP' 카테고리의 다른 글
[GCP] 사용자 인증 정보 받기 (0) | 2023.07.22 |
---|---|
[GKE] Some backend services are in UNHEALTHY state (0) | 2023.07.19 |
[GCP] GKE로 웹 애플리케이션 배포 (2) (0) | 2023.06.19 |
[GCP] GKE로 웹 애플리케이션 배포 (1) (0) | 2023.06.18 |
[GCP] GKE 사용해보기 (0) | 2023.06.17 |