- 시작하기 전에
- Google Cloud Identity 및 Access Management (IAM)을 사용하여 사용량 보호
- Google Artifact Registry 리포지토리에 연결
- GitLab 러너 설정하여 Google Cloud에서 CI/CD 작업 실행
- CI/CD 구성 요소를 사용하여 Google Cloud로 배포
- 관련 주제
튜토리얼: Google Cloud 통합 설정
이 튜토리얼에서는 Google Cloud를 GitLab과 통합하여 Google Cloud로 직접 배포할 수 있는 방법을 보여줍니다.
Google Cloud 통합 설정 방법:
- Google Cloud Identity 및 Access Management (IAM)을 사용하여 사용량 보호
- Google Artifact Registry 리포지토리에 연결
- Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab 러너 설정
- CI/CD 구성 요소를 사용하여 Google Cloud로 배포
시작하기 전에
통합 설정을 위해 다음이 필요합니다:
- 적어도 Maintainer 역할이 있는 GitLab 프로젝트가 있어야 합니다.
- 사용하려는 Google Cloud 프로젝트에 Owner IAM 역할이 있어야 합니다.
- Google Artifact Registry 리포지토리가 Docker 형식 및 표준 모드로 있어야 합니다.
- Google Cloud CLI 및 Terraform을 설치해야 합니다.
Google Cloud Identity 및 Access Management (IAM)을 사용하여 사용량 보호
Google Cloud 사용량을 보호하려면 Google Cloud IAM 통합을 설정해야 합니다. 이 단계 이후에 GitLab 그룹이나 프로젝트가 Google Cloud와 연결됩니다. Workload Identity Federation을 사용하여 서비스 계정 키와 관련된 리스크 없이 Google Cloud 리소스의 권한을 처리할 수 있습니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹이나 프로젝트를 찾습니다. 그룹에서 이 설정을 구성하면 설정이 기본적으로 그룹 내의 모든 프로젝트에 적용됩니다.
- 설정 > 통합을 선택합니다.
- Google Cloud IAM을 선택합니다.
- 조종 설정을 선택하고 지시 사항에 따릅니다.
Google Artifact Registry 리포지토리에 연결
Google IAM 통합 설정이 완료되면 Google Artifact Registry 리포지토리에 연결할 수 있습니다. 이 단계 이후에 GitLab에서 Google Cloud 아티팩트를 볼 수 있습니다.
- GitLab 프로젝트에서 왼쪽 사이드바에서 설정 > 통합을 선택합니다.
- Google Artifact Registry를 선택합니다.
- 통합 활성화 아래에서 활성 확인란을 선택합니다.
- 다음 필드를 작성합니다:
- Google Cloud 프로젝트 ID: Google Artifact Registry 리포지토리가 있는 Google Cloud 프로젝트의 ID입니다.
- 리포지토리 이름: Artifact Registry 리포지토리의 이름입니다.
- 리포지토리 위치: Artifact Registry 리포지토리의 위치입니다.
- Google Cloud IAM 정책 구성에서 온스크린 지시에 따라 GitLab에서 사용하려면 Google Cloud의 IAM 정책을 설정합니다.
- 변경 사항 저장을 선택합니다.
- Google Cloud 아티팩트를 보려면 왼쪽 사이드바에서 배포 > Google Artifact Registry를 선택합니다.
나중에는 컨테이너 이미지를 Google Artifact Registry에 푸시합니다.
GitLab 러너 설정하여 Google Cloud에서 CI/CD 작업 실행
GitLab 러너를 Google Cloud에서 CI/CD 작업을 실행하기 위해 설정할 수 있습니다. 이 단계 이후에 GitLab 프로젝트에는 러너 관리자가 동시에 여러 작업을 실행하는 임시 러너를 생성하는 오토스케일링 러너 풀이 있습니다.
- GitLab 프로젝트에서 왼쪽 사이드바에서 설정 > CI/CD를 선택합니다.
- 러너 섹션을 확장합니다.
- 새 프로젝트 러너를 선택합니다.
- 다음 필드를 작성합니다.
- 플랫폼 섹션에서 Google Cloud를 선택합니다.
- 태그 섹션에서 태그 필드에 러너가 실행할 작업 태그를 입력합니다. 이러한 러너에 대해 작업 태그가 없으면 태그 없는을 선택합니다.
- 러너 설명 필드에 GitLab에 표시되는 러너 설명(선택 사항)을 추가합니다.
- 구성 섹션에서 추가 구성을 추가합니다(선택 사항).
- 러너 생성을 선택합니다.
- 단계 1: 환경 지정 섹션의 필드를 작성하여 Google Cloud에서 러너가 CI/CD 작업을 실행하는 환경을 지정합니다.
- 단계 2: GitLab 러너 설정 아래에서 설정 지침을 선택합니다.
- 모달에서 지시 사항을 따릅니다. Google Cloud 프로젝트에 대해 단계 1을 한 번만 수행하면 러너가 프로비저닝할 준비가 되어 있습니다.
지시 사항을 따른 후에는 러너가 온라인 상태가 되고 작업을 실행할 준비가 되기까지 1분이 걸릴 수 있습니다.
CI/CD 구성 요소를 사용하여 Google Cloud로 배포
개발에 대한 최선의 방법은 일관성을 유지하기 위해 CI/CD 구성 요소와 같은 구문을 재사용하는 것입니다.
GitLab 및 Google의 구성 요소 라이브러리를 사용하여 GitLab 프로젝트를 Google Cloud 리소스와 상호 작용할 수 있습니다. Google의 CI/CD 구성 요소를 참조하세요.
컨테이너 이미지를 Google Artifact Registry로 복사
시작하기 전에 컨테이너 이미지를 빌드하고 GitLab 컨테이너 레지스트리에 푸시하는 작업을 수행하는 작동하는 CI/CD 구성이 있어야 합니다.
GitLab 컨테이너 레지스트리에서 Google Artifact Registry로 컨테이너 이미지를 복사하려면 파이프라인에 Google의 CI/CD 구성 요소를 포함하세요. 이 단계 이후에는 GitLab 컨테이너 레지스트리에 새 컨테이너 이미지를 푸시하면 Google Artifact Registry에도 해당 이미지가 푸시됩니다.
- GitLab 프로젝트에서 왼쪽 사이드바에서 빌드 > 파이프라인 편집기를 선택합니다.
- 기존 구성에서 다음과 같이 구성을 추가합니다.
-
<your_stage>
를 사용하는 단계로 변경합니다. 이미지가 빌드되고 GitLab 컨테이너 레지스트리에 푸시된 후여야 합니다.
include: - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main inputs: stage: <your_stage> source: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA target: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA
-
- 설명 커밋 메시지를 추가합니다. 대상 브랜치는 기본 브랜치여야 합니다.
- 변경 사항 커밋을 선택합니다.
- 빌드 > 파이프라인으로 이동하여 새 파이프라인이 실행되는지 확인합니다.
- 파이프라인이 성공적으로 완료되면 Google Artifact Registry에 복사된 컨테이너 이미지를 보려면 왼쪽 사이드바에서 배포 > Google Artifact Registry를 선택합니다.
구글 클라우드 배포 릴리즈 생성
파이프라인을 구글 클라우드 배포와 통합하려면 파이프라인에 구글의 CI/CD 구성 요소를 포함하십시오. 이 단계 이후에 파이프라인은 애플리케이션과 함께 구글 클라우드 배포 릴리스를 생성합니다.
- GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Pipeline editor를 선택합니다.
- 기존 구성에 구글 클라우드 배포 구성 요소를 추가합니다.
-
inputs
구성을 편집합니다. - 설명적인 커밋 메시지를 추가합니다. 대상 브랜치는 기본 브랜치여야 합니다.
- 변경 사항 커밋을 선택합니다.
- Build > 파이프라인으로 이동하여 새 파이프라인이 성공적으로 통과되었는지 확인합니다.
- 파이프라인이 성공적으로 완료된 후, 릴리스를 보려면 구글 클라우드 설명서를 참조하세요.
그리고 여기까지입니다! 이제 구글 클라우드를 GitLab과 통합했으며, GitLab 프로젝트가 원활하게 구글 클라우드로 배포됩니다.