- 시작하기 전에
- Google Cloud Identity 및 액세스 관리(IAM)로 사용을 안전하게 보호하기
- Google Artifact Registry 리포지토리에 연결
- Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab Runner 설정
- Google Cloud에서 CI/CD 구성 요소를 사용하여 배포하기
- 관련 주제
튜토리얼: Google Cloud 통합 설정
이 기능은 베타상태입니다. 이 기능을 테스트하려면 대기 목록에 가입하십시오.
이 튜토리얼에서는 Google Cloud를 GitLab과 통합하는 방법을 보여줍니다. 이를 통해 Google Cloud로 직접 배포할 수 있습니다.
Google Cloud 통합 설정 방법:
- Google Cloud Identity 및 액세스 관리(IAM)로 사용을 안전하게 보호
- Google Artifact Registry 리포지토리에 연결
- Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab Runner 설정
- CI/CD 구성 요소와 함께 Google Cloud로 배포
시작하기 전에
통합을 설정하려면 다음이 있어야합니다:
- 적어도 Maintainer 역할이있는 GitLab 프로젝트가 있어야합니다.
- 원하는 Google Cloud 프로젝트에 소유자 IAM 역할이 있어야합니다.
- Google Cloud 프로젝트에 청구 활성화가 되어 있어야합니다.
- Docker 형식 및 표준 모드를 사용하는 Google Artifact Registry 리포지토리가 있어야합니다.
- Google Cloud CLI 및 Terraform을 설치해야합니다.
Google Cloud Identity 및 액세스 관리(IAM)로 사용을 안전하게 보호하기
Google Cloud의 사용을 안전하게 보호하려면 Google Cloud IAM 통합을 설정해야합니다. 이 단계 이후에는 GitLab 그룹 또는 프로젝트가 Google Cloud에 연결됩니다. 워크로드 식별 페더레이션을 사용하여 서비스 계정 키 및 관련 위험을 사용하지 않고 Google Cloud 리소스의 권한을 처리 할 수 있습니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹 또는 프로젝트를 찾습니다. 그룹에서이를 구성하는 경우 설정은 기본적으로 모든 프로젝트에 적용됩니다.
- 설정 > 통합을 선택합니다.
- Google Cloud IAM을 선택합니다.
- 가이드 설정을 선택하고 지침에 따릅니다.
Google Artifact Registry 리포지토리에 연결
Google IAM 통합이 설정되었으므로 Google Artifact Registry 리포지토리에 연결할 수 있습니다. 이 단계 이후에는 Google Cloud 아티팩트를 GitLab에서 볼 수 있습니다.
- GitLab 프로젝트에서 왼쪽 사이드 바에서 설정 > 통합을 선택합니다.
- Google Artifact Registry를 선택합니다.
- 통합 활성화란에서 활성 확인란을 선택합니다.
- 필드를 작성합니다:
- Google Cloud 프로젝트 ID: Artifact Registry 리포지토리가 위치한 Google Cloud 프로젝트의 ID입니다.
- Repository 이름: Artifact Registry 리포지토리의 이름입니다.
- Repository 위치: Artifact Registry 리포지토리의 위치입니다.
- Google Cloud IAM 정책 구성에서 화면에 표시된 지침에 따라 GitLab 프로젝트에서 Artifact Registry 리포지토리를 사용하는 데 필요한 IAM 정책을 설정합니다.
- 변경 사항 저장을 선택합니다.
- Google Cloud 아티팩트를 보려면 왼쪽 사이드 바에서 배포 > Google Artifact Registry를 선택합니다.
나중에이 단계에서는 Google Artifact Registry에 컨테이너 이미지를 푸시합니다.
Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab Runner 설정
GitLab Runner를 설정하여 Google Cloud에서 CI/CD 작업을 실행할 수 있습니다. 이 단계 이후에 GitLab 프로젝트에는 임시 러너를 만들어 여러 작업을 동시에 실행하는 러너 관리자가있는 자동 크기 조정 러너 풀이 있습니다.
- GitLab 프로젝트에서 왼쪽 사이드 바에서 설정 > CI/CD를 선택합니다.
- 러너 섹션을 확장합니다.
- 새 프로젝트 러너를 선택합니다.
- 필드를 작성합니다.
- 플랫폼 섹션에서 Google Cloud를 선택합니다.
- 태그 섹션에서 태그 필드에 러너가 실행할 작업을 지정하는 작업 태그를 입력합니다. 이 러너를위한 작업 태그가없으면 태그 없이 실행을 선택합니다.
- 선택 사항 러너 설명 필드에 GitLab에 표시되는 러너에 대한 설명을 추가합니다.
- 선택 사항 구성 섹션에 추가 구성을 추가합니다.
- 러너 생성을 선택합니다.
- 단계 1 : 환경 지정 섹션의 필드를 작성하여 Google Cloud 환경에서 러너가 CI/CD 작업을 실행할 환경을 지정합니다.
- 단계 2 : GitLab Runner 설정에서 설정 지침을 선택합니다.
- 모달에서 지침을 따릅니다. 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로도 함께 푸시됩니다.
- GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Pipeline editor를 선택하세요.
- 기존 구성에 다음
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
- 작업 내의 플레이스홀더를 다음과 같이 바꿉니다.
- 설명적인 커밋 메시지를 추가하세요. 대상 브랜치는 기본 브랜치여야 합니다.
- 변경 사항 커밋을 선택하세요.
- Build > Pipelines로 이동하여 새 파이프라인이 실행되는지 확인하세요.
- 파이프라인을 선택한 다음,
copy-image
작업을 선택하여 로그를 확인하세요. - 작업이 성공적으로 완료되면 Google Artifact Registry에 푸시된 컨테이너 이미지를 보려면, 왼쪽 사이드바에서 Deploy > Google Artifact Registry를 선택하세요.
Google Cloud 배포 릴리스 생성
파이프라인이 Google Cloud Deploy와 상호 작용하도록 하려면 Google의 GitLab CI/CD 구성 요소를 사용할 수 있습니다. 이 단계 이후에는 파이프라인이 응용 프로그램과 함께 Google Cloud Deploy 릴리스를 생성합니다.
- GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Pipeline editor를 선택하세요.
- 기존 구성에 Google Cloud Deploy 구성 요소를 추가하세요.
- 요소
inputs
를 편집하세요. - 설명적인 커밋 메시지를 추가하세요. 대상 브랜치는 기본 브랜치여야 합니다.
- 변경 사항 커밋을 선택하세요.
- Build > Pipelines로 이동하여 새 파이프라인이 성공적으로 완료되는지 확인하세요.
- 파이프라인이 성공적으로 완료된 후, 릴리스를 보려면 Google Cloud 문서를 참조하세요.
여기까지입니다! 이제 Google Cloud를 GitLab과 통합하고 GitLab 프로젝트가 Google Cloud로 심사숙고 없이 배포되었습니다.