튜토리얼: Google Cloud 통합 설정

Tier: Free, Premium, Ultimate Offering: GitLab.com Status: Beta
GitLab.com에서이 기능은 일부 사용자를 대상으로 사용할 수 있습니다. GitLab Dedicated에서는 이 기능을 사용할 수 없습니다.

이 기능은 베타 상태입니다.

이 튜토리얼에서는 Google Cloud를 GitLab과 통합하는 방법을 보여줍니다. 이를 통해 Google Cloud로 직접 배포할 수 있습니다.

Google Cloud 통합 설정 방법:

  1. Google Cloud Identity 및 Access Management(IAM)으로 사용량 보호
  2. Google Artifact Registry 리포지터리에 연결
  3. Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab Runner 설정
  4. CI/CD 컴포넌트를 사용하여 Google Cloud로 배포

시작하기 전에

통합을 설정하려면 다음이 필요합니다:

Google Cloud Identity 및 Access Management(IAM)으로 사용량 보호

Google Cloud 사용을 안전하게 하려면 Google Cloud IAM 통합을 설정해야 합니다. 이 단계 후에는 GitLab 그룹이나 프로젝트가 Google Cloud에 연결됩니다. Workload identity federation을 사용하여 서비스 계정 키 및 관련 위험 없이 Google Cloud 리소스에 대한 권한을 처리할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹 또는 프로젝트를 찾습니다. 그룹에서 구성하면 설정이 기본적으로 모든 프로젝트에 적용됩니다.
  2. 설정 > 통합을 선택합니다.
  3. Google Cloud IAM을 선택합니다.
  4. 가이드 설정을 선택하고 지시 사항을 따릅니다.

Google Artifact Registry 리포지터리에 연결

이제 Google IAM 통합이 설정되었으므로 Google Artifact Registry 리포지터리에 연결할 수 있습니다. 이 단계 후에는 GitLab에서 Google Cloud 아티팩트를 볼 수 있습니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 설정 > 통합을 선택합니다.
  2. Google Artifact Registry를 선택합니다.
  3. 활성 확인란을 선택합니다.
  4. 필드를 작성합니다.
    • Google Cloud 프로젝트 ID: Google Artifact Registry 리포지터리가있는 Google Cloud 프로젝트의 ID입니다.
    • 리포지터리 이름: Artifact Registry 리포지터리의 이름입니다.
    • 리포지터리 위치: Artifact Registry 리포지터리의 위치입니다.
  5. Google Cloud IAM 정책 구성에서 온스크린 지시 사항에 따라 GitLab 프로젝트에서 Artifact Registry 리포지터리를 사용하려면 이 정책이 필요합니다.
  6. 변경 사항 저장을 선택합니다.
  7. Google 클라우드 아티팩트를 보려면
    왼쪽 사이드바에서 배포 > Google Artifact Registry를 선택합니다.

나중에 단계에서는 컨테이너 이미지를 Google Artifact Registry에 푸시합니다.

Google Cloud Runner를 설정하여 Google Cloud에서 CI/CD 작업 실행

Google Cloud에 CI/CD 작업을 실행하기 위해 Google Cloud Runner를 설정할 수 있습니다. 이 단계 후에는 GitLab 프로젝트에 자동으로 확장되는 러너 풀이 있습니다. 이러한 러너 관리자는 여러 작업을 동시에 실행하기 위해 임시 러너를 만듭니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 설정 > CI/CD를 선택합니다.
  2. 러너 섹션을 확장합니다.
  3. 새 프로젝트 러너를 선택합니다.
  4. 필드를 작성합니다.
    • 플랫폼 섹션에서 Google Cloud를 선택합니다.
    • 태그 섹션에서 태그 필드에 러너가 실행할 작업 태그를 입력합니다. 이 러너에 대한 작업 태그가없는 경우 태그 없이 실행을 선택합니다.
    • 러너 설명 필드에 GitLab에 표시되는 러너에 대한 설명을 추가(선택 사항).
    • 구성 섹션의 경우 추가 구성을 추가합니다(선택 사항).
  5. 러너 생성을 선택합니다.
  6. Step 1: 환경 지정 섹션의 필드를 작성하여 러너가 Google Cloud에서 실행하는 CI/CD 작업의 환경을 지정합니다.
  7. Step 2: GitLab Runner 설정에서 설정 지침을 선택합니다.
  8. 모달에서 지시 사항을 따릅니다. 이 단계는 Google Cloud 프로젝트를 준비하여 러너를 프로비저닝할 준비가되어 있도록 한 번만 수행해야 합니다.

지시 사항을 따르면 러너가 온라인 상태가 되고 작업을 실행할 준비가되기까지 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 컴포넌트를 포함합니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 빌드 > 파이프라인 편집기를 선택합니다.
  2. 기존 구성에서 다음과 같이 구성을 추가합니다.
    • <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
    
  3. 설명 커밋 메시지를 추가합니다. 대상 브랜치는 기본 브랜치여야합니다.
  4. 변경 사항 커밋을 선택합니다.
  5. 새 파이프라인이 실행되는지 빌드 > 파이프라인에 가서 확인합니다.
  6. 파이프라인이 성공적으로 완료된 후에 Google Artifact Registry에 복사된 컨테이너 이미지를 보려면
    왼쪽 사이드바에서 배포 > Google Artifact Registry를 선택합니다.

Google Cloud Deploy 릴리스 생성

파이프라인을 Google Cloud Deploy와 통합하려면 파이프라인에 Google의 CI/CD 컴포넌트를 포함합니다. 이 단계 후에 파이프라인은 애플리케이션과 함께 Google Cloud Deploy 릴리스를 만듭니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 빌드 > 파이프라인 편집기를 선택합니다.
  2. 기존 구성에 Google Cloud Deploy 구성요소를 추가합니다.
  3. inputs 구성을 편집합니다.
  4. 설명 커밋 메시지를 추가합니다. 대상 브랜치는 기본 브랜치여야합니다.
  5. 변경 사항 커밋을 선택합니다.
  6. 새 파이프라인이 성공적으로 완료된 후에릴리스를 보려면
    Google Cloud 문서를 참조합니다.

이것으로 끝났습니다! 이제 Google Cloud를 GitLab과 통합했으며
GitLab 프로젝트가 Google Cloud로 심리스하게 배포됩니다.

관련 주제