튜토리얼: Google Cloud 통합 설정

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

이 기능은 베타상태입니다. 이 기능을 테스트하려면 대기 목록에 가입하십시오.

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

Google Cloud 통합 설정 방법:

  1. Google Cloud Identity 및 액세스 관리(IAM)로 사용을 안전하게 보호
  2. Google Artifact Registry 리포지토리에 연결
  3. Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab Runner 설정
  4. CI/CD 구성 요소와 함께 Google Cloud로 배포

시작하기 전에

통합을 설정하려면 다음이 있어야합니다:

  • 적어도 Maintainer 역할이있는 GitLab 프로젝트가 있어야합니다.
  • 원하는 Google Cloud 프로젝트에 소유자 IAM 역할이 있어야합니다.
  • Google Cloud 프로젝트에 청구 활성화가 되어 있어야합니다.
  • Docker 형식 및 표준 모드를 사용하는 Google Artifact Registry 리포지토리가 있어야합니다.
  • Google Cloud CLITerraform을 설치해야합니다.

Google Cloud Identity 및 액세스 관리(IAM)로 사용을 안전하게 보호하기

Google Cloud의 사용을 안전하게 보호하려면 Google Cloud IAM 통합을 설정해야합니다. 이 단계 이후에는 GitLab 그룹 또는 프로젝트가 Google Cloud에 연결됩니다. 워크로드 식별 페더레이션을 사용하여 서비스 계정 키 및 관련 위험을 사용하지 않고 Google Cloud 리소스의 권한을 처리 할 수 있습니다.

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

Google Artifact Registry 리포지토리에 연결

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

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

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

Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab Runner 설정

GitLab Runner를 설정하여 Google Cloud에서 CI/CD 작업을 실행할 수 있습니다. 이 단계 이후에 GitLab 프로젝트에는 임시 러너를 만들어 여러 작업을 동시에 실행하는 러너 관리자가있는 자동 크기 조정 러너 풀이 있습니다.

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

지침을 따른 후 러너가 온라인 상태가되어 작업을 실행 할 준비가되는 데 최대 1 분이 걸릴 수 있습니다.

Google Cloud에서 CI/CD 구성 요소를 사용하여 배포하기

개발의 best practice는 CI/CD 구성 요소와 같은 구문을 재사용하여 여러 파이프라인에서 일관성을 유지하는 것입니다.

Google 및 GitLab의 구성 요소 라이브러리를 사용하여 GitLab 프로젝트에서 Google Cloud 리소스와 상호 작용할 수 있습니다. Google의 CI/CD 구성 요소를 참조하세요.

Google Artifact Registry에 컨테이너 이미지 푸시

시작하기 전에 GitLab Container Registry에서 컨테이너 이미지를 빌드하고 푸시하는 작업이 있는 작동하는 CI/CD 구성이 있어야 합니다.

GitLab Container Registry에서 Google Artifact Registry로 컨테이너 이미지를 푸시하려면 파이프라인에 특정 구성을 추가해야 합니다. 이 단계 이후에는 새 컨테이너 이미지가 GitLab Container Registry에 푸시될 때마다 Google Artifact Registry로도 함께 푸시됩니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Pipeline editor를 선택하세요.
  2. 기존 구성에 다음 copy-image 작업을 추가하세요.
    • 작업 내의 플레이스홀더를 다음과 같이 바꿉니다.
      • <your_stage>: 이 작업이 실행되는 스테이지.
      • <your_build_job>: 이미지를 빌드하고 GitLab Container Registry에 푸시하는 작업.
    copy-image:
     stage: <your_stage>
     image: gcr.io/google.com/cloudsdktool/google-cloud-cli:466.0.0-alpine
     identity: google_cloud
     services:
       - docker:24.0.5-dind
     variables:
       SOURCE_IMAGE: $CI_REGISTRY_IMAGE:v0.1.0
       TARGET_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/app:v0.1.0
       DOCKER_HOST: tcp://docker:2375
     before_script:
       - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
       - gcloud auth configure-docker $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev
     script:
       - docker pull $SOURCE_IMAGE
       - docker tag $SOURCE_IMAGE $TARGET_IMAGE
       - docker push $TARGET_IMAGE
    
  3. 설명적인 커밋 메시지를 추가하세요. 대상 브랜치는 기본 브랜치여야 합니다.
  4. 변경 사항 커밋을 선택하세요.
  5. Build > Pipelines로 이동하여 새 파이프라인이 실행되는지 확인하세요.
  6. 파이프라인을 선택한 다음, copy-image 작업을 선택하여 로그를 확인하세요.
  7. 작업이 성공적으로 완료되면 Google Artifact Registry에 푸시된 컨테이너 이미지를 보려면, 왼쪽 사이드바에서 Deploy > Google Artifact Registry를 선택하세요.

Google Cloud 배포 릴리스 생성

파이프라인이 Google Cloud Deploy와 상호 작용하도록 하려면 Google의 GitLab CI/CD 구성 요소를 사용할 수 있습니다. 이 단계 이후에는 파이프라인이 응용 프로그램과 함께 Google Cloud Deploy 릴리스를 생성합니다.

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

여기까지입니다! 이제 Google Cloud를 GitLab과 통합하고 GitLab 프로젝트가 Google Cloud로 심사숙고 없이 배포되었습니다.

관련 주제