로드 중...
검색 결과가 없습니다.

Google Cloud 콘솔에서 기술 적용

700개 이상의 실습 및 과정 이용하기

Google Cloud Deploy를 통한 지속적 배포

실습 1시간 30분 universal_currency_alt 크레딧 5개 show_chart 중급
info 이 실습에는 학습을 지원하는 AI 도구가 통합되어 있을 수 있습니다.
700개 이상의 실습 및 과정 이용하기

GSP1079

Google Cloud 사용자 주도형 실습 로고

개요

Google Cloud Deploy는 정의된 승격 시퀀스에 따라 애플리케이션을 일련의 대상 환경으로 자동 배포하는 관리형 서비스입니다. 업데이트된 애플리케이션을 배포하려면 배포 파이프라인에서 수명 주기를 관리하는 출시 버전을 만들어야 합니다.

이 실습에서는 Google Cloud Deploy를 사용해 배포 파이프라인을 만들어 봅니다. 그런 다음 기본 애플리케이션의 출시 버전을 만들고 일련의 Google Kubernetes Engine(GKE) 대상을 통해 애플리케이션을 승격합니다.

샘플 애플리케이션은 포트를 리슨하고 HTTP 응답 코드를 제공하고 로그 항목을 추가하는 간단한 웹 앱입니다. 이 실습은 Google에서 게시한 튜토리얼(https://cloud.google.com/deploy/docs/tutorials)을 기반으로 합니다.

목표

이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • Skaffold를 사용하여 Google Cloud Artifact Registry에 컨테이너 이미지 배포
  • Google Cloud Deploy 배포 파이프라인 만들기
  • 배포 파이프라인을 위한 출시 버전 만들기
  • 배포 파이프라인의 대상을 통한 애플리케이션 승격

설정

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지를 표시합니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드(권장) 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학습자 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간(실습을 시작하고 나면 일시중지할 수 없음)
참고: 이 실습에는 학습자 계정만 사용하세요. 다른 Google Cloud 계정을 사용하는 경우 해당 계정에 비용이 청구될 수 있습니다.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 대화상자가 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 창이 있습니다.

    • Google Cloud 콘솔 열기 버튼
    • 남은 시간
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보
    • 필요한 경우 실습 진행을 위한 기타 정보
  2. Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).

    실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.

    {{{user_0.username | "Username"}}}

    실습 세부정보 창에서도 사용자 이름을 확인할 수 있습니다.

  4. 다음을 클릭합니다.

  5. 아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.

    {{{user_0.password | "Password"}}}

    실습 세부정보 창에서도 비밀번호를 확인할 수 있습니다.

  6. 다음을 클릭합니다.

    중요: 실습에서 제공하는 사용자 인증 정보를 사용해야 합니다. Google Cloud 계정 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  7. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
    • 무료 체험판을 신청하지 않습니다.

잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.

참고: Google Cloud 제품 및 서비스에 액세스하려면 탐색 메뉴를 클릭하거나 검색창에 제품 또는 서비스 이름을 입력합니다. 탐색 메뉴 아이콘 및 검색창

Cloud Shell 활성화

Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다. Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.

  1. Google Cloud 콘솔 상단에서 Cloud Shell 활성화 Cloud Shell 활성화 아이콘를 클릭합니다.

  2. 다음 창을 클릭합니다.

    • Cloud Shell 정보 창을 통해 계속 진행합니다.
    • 사용자 인증 정보를 사용하여 Google Cloud API를 호출할 수 있도록 Cloud Shell을 승인합니다.

연결되면 사용자 인증이 이미 처리된 것이며 프로젝트가 학습자의 PROJECT_ID, (으)로 설정됩니다. 출력에 이 세션의 PROJECT_ID를 선언하는 줄이 포함됩니다.

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.

  1. (선택사항) 다음 명령어를 사용하여 활성 계정 이름 목록을 표시할 수 있습니다.
gcloud auth list
  1. 승인을 클릭합니다.

출력:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (선택사항) 다음 명령어를 사용하여 프로젝트 ID 목록을 표시할 수 있습니다.
gcloud config list project

출력:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 참고: gcloud 전체 문서는 Google Cloud에서 gcloud CLI 개요 가이드를 참고하세요.

작업 1. 변수 설정

  • 여러 명령어에서 사용할 환경 변수를 선언합니다.
export PROJECT_ID=$(gcloud config get-value project) export REGION={{{ project_0.default_region | "Region" }}} gcloud config set compute/region $REGION

작업 2. GKE 클러스터 3개 만들기

이 작업에서는 배포 파이프라인의 대상으로 사용할 GKE 클러스터 3개를 만듭니다.

생성된 GKE 클러스터 3개는 각각 배포 파이프라인의 다음 3가지 대상을 나타냅니다.

  • 테스트
  • 스테이징
  • 프로덕션
  1. Google Kubernetes Engine API를 사용 설정합니다.
gcloud services enable \ container.googleapis.com \ clouddeploy.googleapis.com
  1. GKE 클러스터 3개를 만듭니다.
gcloud container clusters create test --node-locations={{{project_0.default_zone|"zone"}}} --num-nodes=1 --async gcloud container clusters create staging --node-locations={{{project_0.default_zone|"zone"}}} --num-nodes=1 --async gcloud container clusters create prod --node-locations={{{project_0.default_zone|"zone"}}} --num-nodes=1 --async
  1. 클러스터 3개의 상태를 확인합니다.
gcloud container clusters list --format="csv(name,status)"

출력

name,status prod,PROVISIONING staging,PROVISIONING test,RUNNING

클러스터를 만드는 데 몇 분 정도 걸릴 수 있습니다. 클러스터가 준비될 때까지 기다릴 필요는 없습니다. 실습을 계속 진행하세요.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. GKE 클러스터 3개 만들기

작업 3. 웹 애플리케이션 컨테이너 이미지 준비하기

이 작업에서는 Artifact Registry에 웹 애플리케이션의 컨테이너 이미지를 보관할 저장소를 만듭니다.

  1. Artifact Registry API를 사용 설정합니다.
gcloud services enable artifactregistry.googleapis.com
  1. 컨테이너 이미지를 보관할 웹 앱 저장소를 만듭니다.
gcloud artifacts repositories create web-app \ --description="Image registry for tutorial web app" \ --repository-format=docker \ --location=$REGION

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 웹 앱 저장소 만들기

작업 4. 컨테이너 이미지를 빌드하여 Artifact Registry에 배포하기

이 작업에서는 웹 애플리케이션이 포함된 git 저장소를 클론하고 애플리케이션의 컨테이너 이미지를 Artifact Registry에 배포합니다.

애플리케이션 구성 준비

  1. 실습용 저장소를 홈 디렉터리에 클론합니다.
cd ~/ git clone https://github.com/GoogleCloudPlatform/cloud-deploy-tutorials.git cd cloud-deploy-tutorials git checkout c3cae80 --quiet cd tutorials/base
  1. skaffold.yaml 구성을 만듭니다.
envsubst < clouddeploy-config/skaffold.yaml.template > web/skaffold.yaml cat web/skaffold.yaml

이제 웹 디렉터리에 skaffold.yaml 구성 파일이 포함됩니다. 이 파일은 Skaffold가 애플리케이션의 컨테이너 이미지를 빌드할 수 있도록 안내를 제공합니다. 이 구성은 다음 항목을 설명합니다.

빌드 섹션 구성:

  • 빌드될 컨테이너 이미지 2개(아티팩트)
  • 이미지 빌드에 사용될 Google Cloud Build 프로젝트

deploy 섹션은 워크로드를 클러스터에 배포하는 데 필요한 Kubernetes 매니페스트를 구성합니다.

portForward 구성은 배포를 위한 Kubernetes 서비스를 정의하는 데 사용됩니다.

출력

apiVersion: skaffold/v2beta7 kind: Config build: artifacts: - image: leeroy-web context: leeroy-web - image: leeroy-app context: leeroy-app googleCloudBuild: projectId: {{project-id}} deploy: kubectl: manifests: - leeroy-web/kubernetes/* - leeroy-app/kubernetes/* portForward: - resourceType: deployment resourceName: leeroy-web port: 8080 localPort: 9000 참고: 파일을 확인하려면 Cloud Shell에서 편집기 열기 아이콘을 클릭하여 vi, emacs, nano 또는 Cloud Shell 코드 편집기를 사용하세요.

웹 애플리케이션 빌드

Skaffold 도구는 코드베이스를 Cloud Build에 제출하는 작업을 처리합니다.

  1. Cloud Build API를 사용 설정합니다.
gcloud services enable cloudbuild.googleapis.com
  1. Cloud Build가 소스와 로그를 저장할 Cloud Storage 버킷을 만듭니다.
gsutil mb -p $PROJECT_ID gs://${PROJECT_ID}_cloudbuild
  1. skaffold 명령어를 실행하여 애플리케이션을 빌드하고 이전에 만든 Artifact Registry 저장소에 컨테이너 이미지를 배포합니다.
cd web skaffold build --interactive=false \ --default-repo $REGION-docker.pkg.dev/$PROJECT_ID/web-app \ --file-output artifacts.json cd ..
  1. Skaffold 빌드가 완료되면 Artifact Registry에서 컨테이너 이미지를 확인합니다.
gcloud artifacts docker images list \ $REGION-docker.pkg.dev/$PROJECT_ID/web-app \ --include-tags \ --format yaml

--format yaml 파라미터는 가독성을 위해 출력을 YAML로 반환합니다. 출력은 다음과 같습니다.

출력

--- createTime: '2022-01-14T02:07:54.995807Z' package: us-central1-docker.pkg.dev/{{project-id}}/web-app/leeroy-app tags: '9181623' updateTime: '2022-01-14T02:07:54.995807Z' version: sha256:6af6a0a72d13dd6597c0fc0191f697e2da2c3892d1bf8e87a3df8d96612e1495 --- createTime: '2022-01-14T02:07:53.629263Z' package: us-central1-docker.pkg.dev/{{project-id}}/web-app/leeroy-web tags: '9181623' updateTime: '2022-01-14T02:07:53.629263Z' version: sha256:a0179673d1876f205875b223557c83162e56e91c5e3313f5e99465a224adb6c9

기본적으로 Skaffold는 이미지 태그를 관련된 git 태그로 설정합니다(사용 가능한 경우). skaffold 명령어로 생성된 artifacts.json 파일에서 비슷한 정보를 찾을 수 있습니다.

Skaffold는 배포된 이미지의 세부정보가 있는 web/artifacts.json 파일을 생성합니다.

cat web/artifacts.json | jq

출력

{ "builds": [ { "imageName": "leeroy-web", "tag": "us-central1-docker.pkg.dev/{{project-id}}/web-app/leeroy-web:9181623@sha256:a0179673d1876f205875b223557c83162e56e91c5e3313f5e99465a224adb6c9" }, { "imageName": "leeroy-app", "tag": "us-central1-docker.pkg.dev/{{project-id}}/web-app/leeroy-app:9181623@sha256:6af6a0a72d13dd6597c0fc0191f697e2da2c3892d1bf8e87a3df8d96612e1495" } ]

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 컨테이너 이미지를 빌드하여 Artifact Registry에 배포하기

작업 5. 배포 파이프라인 만들기

이 작업에서는 배포 파이프라인을 설정합니다.

  1. Google Cloud Deploy API를 사용 설정합니다.
gcloud services enable clouddeploy.googleapis.com
  1. delivery-pipeline.yaml 파일을 사용하여 delivery-pipeline 리소스를 만듭니다.
gcloud config set deploy/region $REGION cp clouddeploy-config/delivery-pipeline.yaml.template clouddeploy-config/delivery-pipeline.yaml gcloud beta deploy apply --file=clouddeploy-config/delivery-pipeline.yaml
  1. 배포 파이프라인이 생성되었는지 확인합니다.
gcloud beta deploy delivery-pipelines describe web-app

다음 출력과 유사한 배포 파이프라인이 나타납니다.

출력

Unable to get target test Unable to get target staging Unable to get target prod Delivery Pipeline: createTime: '2021-08-16T14:03:18.294884547Z' description: web-app delivery pipeline etag: 2539eacd7f5c256d name: projects/{{project-id}}/locations/us-central1/deliveryPipelines/web-app serialPipeline: stages: - targetId: test - targetId: staging - targetId: prod uid: eb0601aa03ac4b088d74c6a5f13f36ae updateTime: '2021-08-16T14:03:18.680753520Z' Targets: []

출력의 처음 세 줄을 주목하세요. 현재 배포 파이프라인이 아직 생성되지 않은 세 가지 대상 환경을 참조합니다. 다음 작업에서 이러한 대상을 만듭니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 배포 파이프라인 만들기

작업 6. 배포 대상 구성하기

배포 파이프라인 대상 3개가 생성되며, 이는 각각의 GKE 클러스터에 해당합니다.

클러스터가 준비되어 있는지 확인

이제 GKE 클러스터 3개가 실행됩니다. 실제로 실행되는지 확인하는 것이 좋습니다.

  • 다음을 실행하여 클러스터 상태를 확인합니다.
gcloud container clusters list --format="csv(name,status)"

아래 출력에 표시된 것처럼 클러스터 3개가 모두 RUNNING 상태여야 합니다. 아직 RUNNING으로 표시되지 않는 경우 상태가 RUNNING으로 변경될 때까지 위 명령어를 다시 실행합니다.

출력

name,status prod,RUNNING staging,RUNNING test,RUNNING

모든 클러스터가 'RUNNING' 상태가 되면 실습을 계속 진행합니다.

각 클러스터의 컨텍스트 만들기

아래 명령어를 사용하여 각 클러스터의 사용자 인증 정보를 가져오고 이후 클러스터를 참조할 수 있도록 사용하기 쉬운 kubectl 컨텍스트를 만듭니다.

CONTEXTS=("test" "staging" "prod") for CONTEXT in ${CONTEXTS[@]} do gcloud container clusters get-credentials ${CONTEXT} --region ${REGION} kubectl config rename-context gke_${PROJECT_ID}_${REGION}_${CONTEXT} ${CONTEXT} done

각 클러스터에 네임스페이스 만들기

아래 명령어를 사용하여 3개의 클러스터 각각에 Kubernetes 네임스페이스(웹 앱)를 만듭니다.

for CONTEXT in ${CONTEXTS[@]} do kubectl --context ${CONTEXT} apply -f kubernetes-config/web-app-namespace.yaml done

애플리케이션은 (웹 앱) 네임스페이스로 배포됩니다.

배포 파이프라인 대상 만들기

  1. 각 대상의 정의를 제출합니다.
for CONTEXT in ${CONTEXTS[@]} do envsubst < clouddeploy-config/target-$CONTEXT.yaml.template > clouddeploy-config/target-$CONTEXT.yaml gcloud beta deploy apply --file clouddeploy-config/target-$CONTEXT.yaml done

yaml 파일에 대상의 설명이 제공됩니다. 각 대상은 관련 클러스터 정보를 구성합니다. 테스트 및 스테이징 대상 구성은 대개 동일합니다.

  1. 테스트 대상의 세부정보를 표시합니다.
cat clouddeploy-config/target-test.yaml

출력

apiVersion: deploy.cloud.google.com/v1beta1 kind: Target metadata: name: test description: test cluster gke: cluster: projects/{{project-id}}/locations/us-central1/clusters/test

프로덕션 대상은 약간 다릅니다. 클러스터로 출시 버전을 승격하기 전에 승인이 필요하기 때문입니다(출력의 requireApproval 설정 참조).

  1. 프로덕션 대상의 세부정보를 표시합니다.
cat clouddeploy-config/target-prod.yaml

출력

apiVersion: deploy.cloud.google.com/v1beta1 kind: Target metadata: name: prod description: prod cluster requireApproval: true gke: cluster: projects/{{project-id}}/locations/us-central1/clusters/prod
  1. 대상 3개(테스트, 스테이징, 프로덕션)가 만들어졌는지 확인합니다.
gcloud beta deploy targets list

배포 파이프라인을 위한 모든 Google Cloud Deploy 대상이 생성되었습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 배포 대상 구성하기

작업 7. 출시 버전 만들기

이 작업에서는 애플리케이션의 출시 버전을 만듭니다.

Google Cloud Deploy 출시 버전은 특정 배포 파이프라인과 연관된 하나 이상의 컨테이너 이미지의 특정 버전입니다. 출시 버전이 생성된 다음에는 여러 대상으로 승격될 수 있습니다(승격 시퀀스). 또한 출시 버전을 만들면 Skaffold를 통해 애플리케이션이 렌더링되고 해당 출시 버전의 기간 동안 사용되는 특정 시점 참조로 출력이 저장됩니다.

애플리케이션의 첫 출시 버전이므로 이름을 web-app-001로 지정합니다.

  1. 다음 명령어를 실행하여 출시 버전을 만듭니다.
gcloud beta deploy releases create web-app-001 \ --delivery-pipeline web-app \ --build-artifacts web/artifacts.json \ --source web/

--build-artifacts 파라미터는 앞서 Skaffold가 만든 artifacts.json 파일을 참조합니다. --source 파라미터는 skaffold.yaml을 찾을 수 있는 애플리케이션 소스 디렉터리를 참조합니다.

또한 출시 버전이 생성되면 승인이 필요하지 않은 한 파이프라인에서 첫 번째 대상으로 자동 출시됩니다. 승인에 대해서는 이 실습의 이후 단계를 참조하세요.

  1. 테스트 대상에 애플리케이션이 배포되었는지 확인하려면 다음 명령어를 실행합니다.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-001

출력

--- approvalState: DOES_NOT_NEED_APPROVAL createTime: '2021-08-16T14:05:21.961604Z' deployEndTime: '2021-08-16T14:06:35.278604Z' deployStartTime: '2021-08-16T14:06:22.420091744Z' deployingBuild: projects/{{project-id}}/locations/us-central1/builds/4815b788-ec5e-4185-9141-a5b57c71b001 enqueueTime: '2021-08-16T14:06:21.760830Z' etag: 5cb7b6c342b5f29b name: projects/{{project-id}}/locations/us-central1/deliveryPipelines/web-app/releases/web-app-001/rollouts/web-app-001-to-test-0001 state: SUCCESS targetId: test uid: cccd9525d3a0414fa60b2771036841d9

출시 버전을 처음 출시할 때는 Google Cloud Deploy에서 출시 버전이 생성되었을 때 모든 대상에 대해 매니페스트를 렌더링하기 때문에 시간이 몇 분 정도 걸립니다. GKE 클러스터에서 배포에 필요한 리소스를 제공하는 데 몇 분 정도 걸릴 수 있습니다.

이전 명령어의 출력에 state: SUCCESS가 표시되지 않으면 잠시 기다린 후 출시가 완료될 때까지 명령어를 주기적으로 다시 실행합니다.

  1. 다음 명령어를 실행하여 애플리케이션이 테스트 GKE 클러스터에 배포되었는지 확인합니다.
kubectx test kubectl get all -n web-app

출력

NAME READY STATUS RESTARTS AGE pod/leeroy-app-5547cf9d9b-rgc2l 1/1 Running 0 3m27s pod/leeroy-web-6768b49c46-w7vt9 1/1 Running 0 3m27s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/leeroy-app ClusterIP None <none> 50051/TCP 3m28s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/leeroy-app 1/1 1 1 3m28s deployment.apps/leeroy-web 1/1 1 1 3m28s NAME DESIRED CURRENT READY AGE replicaset.apps/leeroy-app-5547cf9d9b 1 1 1 3m28s replicaset.apps/leeroy-web-6768b49c46 1 1 1 3m28s

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 출시 버전 만들기

작업 8. 애플리케이션을 스테이징으로 승격하기

이 작업에서는 애플리케이션을 테스트에서 스테이징 대상으로 승격합니다.

  1. 애플리케이션을 스테이징 대상으로 승격합니다.
gcloud beta deploy releases promote \ --delivery-pipeline web-app \ --release web-app-001

승격을 시작하기 전에 계속 진행하라는 메시지가 표시됩니다.

  • Enter 키를 눌러 기본값을 승인합니다(Y = 예).
  1. 다음 명령어를 실행하여 스테이징 대상에 애플리케이션이 배포되었는지 확인합니다.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-001

출력 검토

targetId: staging으로 표시된 섹션을 찾습니다. 전과 같이 이전 명령어의 출력에 state: SUCCEEDED가 표시되지 않으면 잠시 기다린 후 출시가 완료될 때까지 명령어를 주기적으로 다시 실행합니다.

출력

--- approvalState: DOES_NOT_NEED_APPROVAL createTime: '2022-01-05T02:19:32.539468Z' deployEndTime: '2022-01-05T02:19:45.970949Z' deployStartTime: '2022-01-05T02:19:33.111948770Z' deployingBuild: projects/743805075658/locations/us-central1/builds/2316517c-3a2f-4cd3-80ad-6d133b653746 etag: 1109b802ff586df5 name: projects/{{project-id}}/locations/us-central1/deliveryPipelines/web-app/releases/web-app-001/rollouts/web-app-001-to-staging-0001 state: SUCCEEDED targetId: staging uid: 80a35a5f044844708d2050f8c556e07e

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 애플리케이션을 스테이징으로 승격하기

작업 9. 애플리케이션을 프로덕션으로 승격하기

이 작업에서는 애플리케이션을 다시 승격하면서 승인도 제공합니다.

  1. 애플리케이션을 프로덕션 대상으로 승격합니다.
gcloud beta deploy releases promote \ --delivery-pipeline web-app \ --release web-app-001

승격을 시작하기 전에 계속 진행하라는 메시지가 표시됩니다.

  • Enter 키를 눌러 기본값을 승인합니다(Y = 예).
  1. 다음 명령어를 실행하여 프로덕션 대상의 상태를 확인합니다.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-001

출력에서 approvalStateNEEDS_APPROVAL이고, state가 PENDING_APPROVAL인지 확인합니다.

출력

--- approvalState: NEEDS_APPROVAL createTime: '2021-08-16T14:12:07.466989Z' etag: 6e9303e5a1b04084 name: projects/{{project-id}}/locations/us-central1/deliveryPipelines/web-app/releases/web-app-001/rollouts/web-app-001-to-prod-0001 state: PENDING_APPROVAL targetId: prod uid: a5c7d6007fee4d80904d49142581aaa7
  1. 다음 명령어를 사용해 출시를 승인합니다.
gcloud beta deploy rollouts approve web-app-001-to-prod-0001 \ --delivery-pipeline web-app \ --release web-app-001

승격을 시작하기 전에 출시를 승인하라는 메시지가 표시됩니다.

  • Enter 키를 눌러 기본값을 승인합니다(Y = 예).
  1. 다음 명령어를 실행하여 프로덕션 대상에 애플리케이션이 배포되었는지 확인합니다.
gcloud beta deploy rollouts list \ --delivery-pipeline web-app \ --release web-app-001

이전 출시와 마찬가지로 대상에 대한 항목(targetId: prod)을 찾고 출시가 완료(state: SUCCEEDED)되었는지 확인합니다. 출시가 완료될 때까지 주기적으로 명령어를 다시 실행합니다.

  1. kubectl을 사용하여 배포된 애플리케이션의 상태를 확인합니다.
kubectx prod kubectl get all -n web-app

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 애플리케이션을 프로덕션으로 승격하기

수고하셨습니다

수고하셨습니다. 이 실습에서는 Google Cloud Deploy를 사용해 배포 파이프라인을 만드는 방법을 알아봤습니다. 기본 애플리케이션의 출시 버전을 만들고 일련의 Google Kubernetes Engine(GKE) 대상을 통해 애플리케이션을 승격했습니다. 먼저 애플리케이션을 테스트 대상에 배포한 다음 스테이징 대상으로 승격하고 마지막으로 프로덕션 대상으로 승격했습니다. 이제 Cloud Deploy를 사용하여 지속적 배포 파이프라인을 만들 수 있습니다.

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2025년 5월 15일

실습 최종 테스트: 2025년 5월 15일

Copyright 2025 Google LLC. All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.

시작하기 전에

  1. 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
  2. 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
  3. 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.

시크릿 브라우징 사용

  1. 실습에 입력한 사용자 이름비밀번호를 복사합니다.
  2. 비공개 모드에서 콘솔 열기를 클릭합니다.

콘솔에 로그인

    실습 사용자 인증 정보를 사용하여
  1. 로그인합니다. 다른 사용자 인증 정보를 사용하면 오류가 발생하거나 요금이 부과될 수 있습니다.
  2. 약관에 동의하고 리소스 복구 페이지를 건너뜁니다.
  3. 실습을 완료했거나 다시 시작하려고 하는 경우가 아니면 실습 종료를 클릭하지 마세요. 이 버튼을 클릭하면 작업 내용이 지워지고 프로젝트가 삭제됩니다.

현재 이 콘텐츠를 이용할 수 없습니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

감사합니다

이용할 수 있게 되면 이메일로 알려드리겠습니다.

한 번에 실습 1개만 가능

모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.

시크릿 브라우징을 사용하여 실습 실행하기

이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.