해당 포스팅을 진행 하기 전에, 먼저 아래 포스팅을 참고한다.
2020/06/29 - [Cloud Platforms] - [Cloud Platforms] - Google Cloud Platform (GCP) 기본
Google Container Registry
아무래도 도커 이미지는 인프라 구성요소에서 애플리케이션 개발 환경 및 실행 모듈 등 여러가지를 포함하므로 용량이 큰 경우가 많다. 그래서 이미지들을 직접 온프레미스 환경에서 관리하는 것보다 클라우드환경에서 관리하는게 더 효과적일 수 있다.
Google Container Registry는 구글에서 제공하는 Docker Image를 Private하게 관리할 수 있게 도와주는 API이다. 이 서비스는 GCP의 오브젝트 스토리지 서비스인 Google Cloud Storage를 데이터 저장소로 사용한다. GCR을 사용하여 도커허브 또는 Private Registry와 동일하게 docker image push / pull 명령어를 사용하여 이미지를 사용할 수 있다.
이를 통해 프로그래머는 스토리지 운용이라는 추가 작업에서 해방될 수 있고, 라이브러리의 버전을 포함한 구성 관리가 가능하므로 로컬이든 온프레미스든 클라우드든 상관없이 똑같은 환경에서 작업을 처리할 수 있다. 또한 Private하므로 자사에서 개발한 것들을 간편하게 공유할 수 있다.
1. Google Container Registry API 사용 설정하기
메뉴에서 "API 및 서비스 → 대시보드" 를 선택한다.
여기서는 GCP에서 사용할 수 있는 모든 API들을 관리한다. 현재 내가 쓰고 있는 API 리스트를 확인하고, 여러 설정들을 확인할 수 있다. 현재 어떤 API도 쓰고 있지 않으며, 새로운 API 사용설정을 위해 "API 및 서비스 사용 설정" 을 클릭한다.
API 라이브러리 화면이다. 여기서 여러가지 API들을 찾을 수 있다. 구글 맵스, 머신러닝, 데이터베이스, 개발자 도구, 유투브 등등 매우 다양하다. 여기서 "google container registry" 로 검색한다.
검색된 Google Container Registry API를 선택한다.
해당 API에 대한 설정과 상세설정이 나온다. 여기서 사용설정을 선택한다. 아래 캡쳐에선 "관리" 라고 되어있는데, 이미 설정한 화면이다.
2. Google Cloud SDK 설치
Google Cloud SDK는 GCP 서비스를 관리하기 위한 툴과 라이브러리를 모아놓은 것이다. Google Cloud SDK는 웹브라우저 상의 Cloud Console, Cloud Shell 을 사용하지 않고 임의의 클라이언트 PC에서 GCP를 사용할 수 있게 해준다. Google Cloud SDK는 윈도우,맥,리눅스에서 작동하며 실행에는 파이썬 2.7이 필요하다.
여기 예시는 레드햇 리눅스를 예시로 들었다. Google Cloud SDK를 도커 서버에 설치하고, 서버의 이미지를 Google Container Registry에 업로드할 수 있다. 운영체제별 설치방법은 다음을 참고한다. (https://cloud.google.com/sdk/docs/?hl=ko#rpm )
(1) Google Cloud SDK 설치 레포지토리 구성 및 설치
# 레포지토리 파일 생성
vi /etc/yum.repos.d/google-cloud.sdk.repo
# 아래 내용 삽입 후 저장
[google-cloud-sdk]
name=Google Cloud SDK
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
# 설치
yum install -y google-cloud-sdk
(2) Google Cloud SDK 실행
다음 명령을 실행한다. 해당 명령은 현재 서버와 glcoud를 동기화하기 위한 로그인을 수행한다.
gcloud init
아래와 같이 밑줄로 된 부분을 복사해서 브라우저에 붙여넣기 한다. (또는 해당 운영체제가 GUI가 설치되어 있다면 자동으로 firefox(레드햇기준)가 실행되어 자동으로 로그인 정보 요청을 한다.
구글 로그인 화면이 나오고, GCP를 사용하고 있는 계정 정보를 입력하면 아래와 같이 나온다.
허용을 선택하면, 브라우저에서는 아래와 같이 성공적으로 인증되었다고 뜨며, 프롬프트에서는 아래와 같이 프로젝트를 선택하라고 한다.
이제 원하는 프로젝트를 선택한다. 이후 zone을 선택하라고 하는데, 원하는 zone을 선택하면 된다. (asis쪽으로 선택하면 되는 듯 하다)
3. GCR에 이미지 업로드하기
- GCR에 올리려면 이미지 명을 다음과 같은 형식으로 해야 한다. "GCR호스트명/프로젝트아이디/이미지명"
- 예시 : asia.gcr.io/cubernetes-project/ubuntu-test:latest
# 참고 : GCR 호스트명
GCR(google container registry) 호스트명은 이미지의 저장 위치에 따라 다음 3개중 하나이다. 아래처럼 Container Registry의 설정 부분에서 확인할 수 있다.
- gcr.io 기본
- us.gcr.io 미국
- eu.gcr.io 유럽
- asia.gcr.io 아시아
(1) 이미지를 업로드하기 위해 GCR 설정에 맞춘 이름으로 이미지에 대해 태그를 설정한다.
docker tag ubuntu:16.04 asia.gcr.io/cubernetes-project/ubuntutest:latest
(2) gcloud 명령으로 해당 이미지를 push 한다.
gcloud docker -- push asia.gcr.io/cubernetes-project/ubuntutest:latest
- GCR에서 해당 이미지를 확인할 수 있다.
4. GCR에 업로드 된 이미지를 내 도커서버로 다운로드 받기
- docker와 마찬가지로 pull 명령을 사용한다.
gcloud docker -- pull asia.gcr.io/cubernetes-project/ubuntutest:latest
이미지 확인
'Cloud Platforms' 카테고리의 다른 글
[Cloud Platforms] - Google Cloud Platform (GCP) 기본 (0) | 2020.06.29 |
---|