[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
표준
기본 저장소 모드, 비공개 패키지와 같은 아티팩트를 표준 저장소에 직접 업로드하거나 게시
개별 표준 저장소에서 직접 다운로드 할수도 있지만
가상 저장소를 사용해서 저장소 그룹에 액세스하면 도구 구성이 간소화
원격 (언어 패키지 저장소만)
Docker Hub, Maven Central과 같은 공개 저장소의 아티팩트에 대한 풀스루 캐시
외부 종속 항목을 더 세부적으로 제어할 수 있도록 공개 저장소에 대한 프록시로 작동
솔직히 원격 저장소 설명이 너무 어려워서 무슨말인지 잘 모르겠다 😂
그냥 표준 저장소로 생성
리전은 지금 사용하고있는 쿠버네티스 엔진의 리전과 동일하게 설정했다
필요한 경우 다중 리전으로 사용하면 될 듯
이미지 Push하기
저장소가 생성됐다면 도커 이미지를 Push해보자
Docker Image 생성 방법은 아래 포스팅을 참고
https://heywantodo.tistory.com/118
그리고 당연히 registry에 대한 access 권한이 필요하다
https://cloud.google.com/artifact-registry/docs/access-control?hl=ko#permissions
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 |